-->
当前位置:首页 > 运维 > 正文内容

通过systemd守护程序进程

Luz2年前 (2023-02-20)运维2863

在 CentOS 中,可以使用 Systemd 来配置一个程序在被终止后自动运行。

下面是一个简单的例子,演示如何使用 Systemd 配置一个程序的自动重启:

创建一个 Systemd 服务文件

在终端中使用 root 权限创建一个 Systemd 服务文件 /etc/systemd/system/yourprogram.service,并将以下内容复制到文件中:

[Unit]
Description=Your Program
After=network.target
[Service]
ExecStart=/usr/bin/yourprogram
Restart=always
User=root
[Install]
WantedBy=multi-user.target

测试:

[Unit]
Description=CGI
After=network.target
[Service]
ExecStart=/Luz/cgi/cgi
WorkingDirectory=/Luz/cgi  #运行目录
Restart=always
User=root
ReStartSec=10
[Install]
WantedBy=multi-user.target

其中:

Description:服务的描述信息

After:定义服务启动所依赖的其他服务,在本例中表示该服务需要在网络服务启动后启动。

ExecStart:定义服务启动时要执行的命令,需要替换为你要自动运行的程序路径。

Restart:定义当程序意外退出时是否自动重启,always 表示总是自动重启。

User:定义服务运行时所使用的用户,一般建议使用非 root 用户。


重新加载 Systemd 配置

使用以下命令重新加载 Systemd 配置:

sudo systemctl daemon-reload

启动服务

使用以下命令启动服务:

sudo systemctl start yourprogram

验证服务状态

使用以下命令验证服务状态:

sudo systemctl status yourprogram

如果服务正在运行,你应该会看到一条 active (running) 的状态信息。

设置开机启动

使用以下命令设置服务在系统启动时自动运行:

sudo systemctl enable yourprogram

这样,你的程序就会在被终止后自动运行,即使系统重启也能自动运行。如果需要停止服务,可以使用以下命令:

sudo systemctl stop yourprogram

如果需要禁止开机启动,可以使用以下命令:

sudo systemctl disable yourprogram

注意,这里的示例仅提供了一个简单的配置示例,你需要根据实际情况修改相关配置项,比如程序路径、用户等。同时,这种自动重启方式可能存在一定的安全隐患,需要谨慎使用。


测试效果

image.png

评论列表

路在哪
路在哪
2年前 (2023-03-14)

期待下次更新

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。