Systemd 服务在重启时不启动

Systemd 服务在重启时不启动

/etc/systemd/system/我在运行 rasbpian 的 Raspberry Pi 上安装了以下名为 startupsh.service 的 systemd 服务。

[Unit]
Description=Service to start telegram bot
After=graphical.target
Requires=network.target

[Service]
Type=forking
RemainAfterExit=yes
User=pi
ExecStart=/usr/bin/finder.sh &

[Install]
WantedBy=multi-user.target

我还启用了该服务

sudo systemctl daemon-reload
sudo systemctl enable startupsh.service

sudo systemctl is-enabled startupsh.service显示该服务确实已启用。此外,如果我运行,sudo systemctl start startupsh.service一切都会按预期运行。但是,如果重新启动 pi,该服务不会执行,并sudo systemctl status startupsh.service显示该服务处于非活动状态(已停止)

启动时出了什么问题?我该如何修复?

编辑:finder.sh 脚本如下所示

#!/usr/bin/env bash
echo "Starting Bot..."
source /home/pi/Desktop/Airdropfinder/airdropfinderEnv/bin/activate
python /home/pi/Desktop/Airdropfinder/airdropfinder/src/telegrambot.py

答案1

添加Restart=on-failure到您的 systemd 单元文件。

systemd.service

重启=

如果设置为 on-failure,则当进程以非零退出代码退出时,服务将重新启动

相关内容