示例

假设我想让我的Linux设备启动时自启动两条指令:

cd /test
nohup python3 -m http.server 6666

❗tips: 为什么用nohup,因为nohup是静默指令不会输出指令到终端,运行log会储存在 /test/nohup.out 文件中

实操

.sh文件

创建一个名为 test.sh 文件,输入以下合并代码

#!/bin/bash

(cd /test && nohup python3 -m http.server 6666) &

此处使用 && 运算符来确保只有在 cd 命令成功执行后才执行 nohup 命令。& 符号用于在后台运行 nohup python3 -m http.server 6666 命令。

.service文件

创建名为 test.service 的文件在 /etc/systemd/system 目录中,键入:

[Unit]
Description=HTTP Server

[Service]
ExecStart=/test/test.sh
Restart=always

[Install]
WantedBy=default.target

使用以下命令启用服务并启动它:

sudo systemctl enable test.service
sudo systemctl start test.service

完成,nohup python3 -m http.server 6666 命令将在 Linux 启动时自动执行。

停止服务:

sudo systemctl stop http_server.service

禁用服务:

sudo systemctl disable http_server.service