本文编写于 968 天前,最后修改于 952 天前,其中某些信息可能已经过时。
升级 Debian 9.x 后多少会有些不习惯,哪怕是一点点的差异也会在无形中增加额外的学习成本,比如在 Debian 9 系统默认不带 文件,但是却没阉割掉 服务,所以我们需要补齐缺失的文件。让 Debian 9 系统可以通过编辑rc.loacl文件给我们服务添加开机自启动。【实测Ubuntu也可以使用该方案,也可以添加一个.sh文件:/etc/rc.d/init.d/*.sh来启动】
1、添加rc-local.service
以下为一整条命令,一起复制运行
cat > /etc/systemd/system/rc-local.service <<EOF
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
EOF
2、新建rc.local文件(如果是用宝塔,建好后去etc文件夹里第2页找)
以下为一整条命令,一起复制运行
cat > /etc/rc.local <<EOF
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# bash /root/bindip.sh
exit 0
EOF
3、添加权限并设置开机自启
chmod +x /etc/rc.local
systemctl enable rc-local
systemctl start rc-local.service
检查状态:
systemctl status rc-local.service
返回Active:active信息,则成功。
最后我们就可以在/etc/rc.loacl里,添加开机的自启命令什么的了。记住添加在exit 0这行上面。并且每个脚本或命令最后加 &
注意:更改自启脚本后,需要重新运行一下命令已使其生效。
systemctl restart rc-local.service
systemctl enable rc-local
最后再查看下状态,没有报错就成功了!
还有一种可能报错的情况是python运行报错,提示python打不开py文件,那是因为路径不对,所以要写上绝对路径,比如:
nohup python /root/client-linux.py &
搞定~