最近把自己的树莓派搞了起来,搭了个上网的共享热点,但是遇到了开机自启动的设置问题。

 

我们先给出正常的ubuntu系统的开机自启动服务的设置:

在 /etc/init.d/ 路径下面创建自启动的shell脚本,如:

Debian/ubuntu系统的开机自启动服务的设置——update-rc.d: error: XXX Default-Start contains no runlevels, aborting._开机自启动

 


 

创建文件 clash-v1 ,并赋予至下权限。我这里一般就是直接copy 已经有的文件然后改名,再清空内容,比如我们可以先 sudo cp nfs-common clash-v1,然后再把clash-v1中的内容清空。

创建好文件后我们需要向里面填写启动内容,这里给出我的启动命令的内容:

Debian/ubuntu系统的开机自启动服务的设置——update-rc.d: error: XXX Default-Start contains no runlevels, aborting._开机自启动_02

 


 

#!/bin/sh


nohup /home/devil/clash/clash -d /home/devil/clash 1>/tmp/clash.log  2>&1  &

exit 0

 

 

完成文件内容的编辑后,我们需要设置服务的自启动,因为我们创建的文件名为clash-v1,于是创建服务的命令为:

sudo update-rc.d  clash-v1 defaults 90

然后:

sudo systemctl  enable clash-v1

 

 

 

但是此时往往会报错:

update-rc.d: error: XXX Default-Start contains no runlevels, aborting.

 

后来发现,原来在编辑最早的文件clash-v1的时候没有添加runlevels的注释,这里就直接把其他文件中的注释搞了过来,于是有了最后的结果:

clash-v1 文件:

#!/bin/sh
### BEGIN INIT INFO
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO



nohup /home/devil/clash/clash -d /home/devil/clash 1>/tmp/clash.log  2>&1  &

exit 0

 

也就是说,只有在服务设置的文件中标注了这个4行注释才能设置服务成功,注释:

### BEGIN INIT INFO
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

 

 

 

 

===============================================

 

参考:

Ubuntu18.04server 双网卡,开机自动设置路由并启动校园网网络认证程序(Ubuntu开机自动设置路由,开机自启动应用程序)