登录后台

页面导航

本文编写于 934 天前,最后修改于 918 天前,其中某些信息可能已经过时。

升级 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 &

搞定~