- 写一个需要开机自启动并能退出重启某可执行程序的脚本autostart.sh
export LD_LIBRARY_PATH=xxx/lib:xxx/plugin:$LD_LIBRARY_PATH
while true;do
if test $(pgrep -f main|wc -l) -eq 0
then
sudo ./main
fi
sleep 3
done
- 写一个能后台调用autostart.sh的autostart.local
nohup sh xxx/autostart.sh &
- 在/lib/systemd/system中写一个autostart.service文件调用autostart.local
[Unit]
Description=xxx/autostart.local Compatibility
ConditionFileIsExecutable=xxx/autostart.local
After=network.target
[Service]
Type=forking
ExecStart=xxx/autostart.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
Alias=autostart
- 给予autostart.sh,autostart.service可执行权限
chmod +x autostart.sh
chmod +x autostart.service
sudo systemctl start autostart.service
sudo systemctl enable autostart.service
sudo systemctl status autostart.service
sudo systemctl list-unit-files --type=service
@echo 关闭后台自启动服务
ssh -tt %uname%@%uip% "sudo systemctl stop autostart.service"
@echo 关闭后台自启动服务开机自启
ssh -tt %uname%@%uip% "sudo systemctl disable autostart.service"
@echo 删除后台自启动服务生成的别名文件
ssh -tt %uname%@%uip% "sudo rm -rf /etc/systemd/system/autostart"
ssh -tt %uname%@%uip% "sudo rm -rf /etc/systemd/system/multi-user.target.wants/autostart.service"
@echo 删除后台自启动服务原始文件
ssh -tt %uname%@%uip% "sudo rm -rf /lib/systemd/system/autostart.service"