📜  (code=exited, status=203 EXEC) systemd bash 脚本 (1)

📅  最后修改于: 2023-12-03 14:58:59.726000             🧑  作者: Mango

(code=exited, status=203 EXEC) systemd bash 脚本

系统管理员都知道 Systemd 是一个很常用的初始化系统和系统管理器,它可以启动和管理系统上运行的进程,提供了非常有用的工具和服务。在其中有一项非常重要的功能是可以通过 Systemd 来启动和管理脚本。

而 bash 脚本是 Linux 下最常用的脚本语言之一,可以用于很多自动化任务、系统管理、文件处理等等。在这里,我们将介绍如何通过 Systemd 启动和管理 bash 脚本。

Systemd 配置文件

在 Systemd 中,我们需要编写一个配置文件来定义我们的脚本。通常情况下,我们会把配置文件存放在 /etc/systemd/system/ 目录下,文件名以 .service 结尾。

以下是一个简单的示例配置文件:

[Unit]
Description=My Bash Script

[Service]
ExecStart=/bin/bash /path/to/myscript.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

其中,需要关注的几个配置项包括:

  • Description:服务的描述,可以任意填写。
  • ExecStart:定义脚本的启动命令及参数。
  • Restart:在脚本运行失败时是否自动重启服务。
  • WantedBy:定义服务所属的 target。
配置文件详解

接下来,我们来分别介绍这几个配置项:

Description

由于脚本的功能可能因人而异,所以建议用简短、明了的语言描述一下该脚本所做的事情。比如上面的例子,描述为 "My Bash Script"。

ExecStart

这是定义脚本启动命令及参数的地方,可以将脚本路径和命令行参数一起定义在这里。比如:

ExecStart=/bin/bash /path/to/myscript.sh arg1 arg2
Restart

当脚本运行失败时,设置此项为 on-failure 后,Systemd 会自动重启服务。其他可选值还包括 always 和 never。

WantedBy

该项用于定义服务所属的 target,在 Systemd 中 target 是一组服务的集合,它们共同实现了一种角色或目标。比如 multi-user.target 是用户界面及网络的通用 target。可以使用以下命令查看系统中已有的 target:

systemctl list-units --type target
启动、重启、停止和查看服务状态

当配置文件编写好后,我们就可以使用以下命令启动、重启、停止服务了:

systemctl start myservice.service  # 启动服务
systemctl restart myservice.service  # 重启服务
systemctl stop myservice.service  # 停止服务

查看服务运行状态可以使用:

systemctl status myservice.service

通过以上配置,就可以通过 Systemd 来启动和管理 bash 脚本了。