linux 设置程序自启动

程序随系统开机自启动的方法有很多种, 这里介绍一种简单且常用的, 通过系统的systemd服务进行自启动。

第一步: 新建一个.service文件

sudo vim /etc/systemd/system/myservice.service
[Unit]
Description=My Service
#After=network.target

[Service]
Type=simple
ExecStart=you_path/run.sh
WorkingDirectory=you_path
User=leo038
Group=leo038
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

其中run.sh是你要运行的程序的入口脚本, 也可以是其他可执行的命令。

python3 -u  my_test.py  > test.log   2>&1

注意:systemd 只会跟踪脚本的主进程,脚本用 & 后主进程很快退出,systemd 认为服务已结束,后台进程变成“孤儿”,自启动就失效了

所以如果你的shell 脚本写成下面这样:

python3 -u  my_test.py  > test.log   2>&1   &

你会发现程序已启动就立马结束了, 没有按预期的一直在后台运行。 切记这一点。 如果要自启动, 就不要把程序放在后台。

第二步: 设置自启动

sudo systemctl daemon-reload
sudo systemctl enable myservice

执行完之后可以启动一下进行验证:

sudo systemctl start myservice

第三步:查看日志

如果你没有把日志存文件, 那么通过自启动运行后, 程序就静默了, 看不到输出, 很不方便定位。 别担心, systemctl 工具提供了日志工具可以查看:

journalctl -u   my_test.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值