Linux开机自启程序如何配置方法二(较安全)

  • 写一个需要开机自启动并能退出重启某可执行程序的脚本autostart.sh
#!/bin/sh -e
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
#!/bin/sh -e
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
  • 卸载服务的bat脚本
 @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"
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值