debian update-rc.d和rc-local设置脚本启动运行

系统的启动过程

内核 -> /etc/init/rc-sysint.conf -> /etc/inittab -> etc/init.d/rc -> /etc/rc[0~6].d -> /etc/init.d/rc.local ->/etc/rc.local

虽然在ubuntu后来的版本中默认已经没有了inittab文件,但我可以自行添加。

以上的启动过程,并不是代表所有,以Redhat系列的CentOS5为例:

内核 -> /etc/inittab -> /etc/ rc.sysinit (/etc/rc.d/rc.sysinit) -> /etc/rc[?].d (/etc/rc.d/rc[?].d) -> /etc/rc.local(/etc/rc.d/rc.local)

 

测试安装时自动拉起vnc服务

测试环境debian 10

测试需要安装服务:

apt-get install lightdm  //安装后检查lightdm(登录控制程序)状态

apt-get install x11vnc  //安装x11vnc

 

手动拉起脚本:root@debian10:~# cat /etc/init.d/startvnc.sh

#!/bin/sh
sleep 5  //如果脚本依赖其他服务,降低依赖无法解决则设置休眠时间,规避异常。
x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -shared -noxdamage -xrandr "resize" -rfbport 5900

 

 

Rc-local方式

由于某些软件并没有增加开启启动的服务,很多时候需要手工添加,一般我们都是推荐添加命令到 /etc/rc.local 文件,但是 Debian 10 默认不带 /etc/rc.local 文件,而 rc.local 服务却还是自带的

root@debian9 ~ # cat /lib/systemd/system/rc.local.service

并且默认情况下这个服务还是关闭的状态

root@debian9 ~ # systemctl status rc-local

● rc-local.service - /etc/rc.local Compatibility

   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)

  Drop-In: /lib/systemd/system/rc-local.service.d

           └─debian.conf

   Active: inactive (dead)

为了解决这个问题,我们需要手工添加一个 /etc/rc.local 文件

cat /etc/rc.local

#!/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.

/etc/init.d/startvnc.sh

exit 0

然后赋予权限

chmod +x /etc/rc.local

接着启动 rc-local 服务

systemctl start rc-local

再次查看状态

root@debian9 ~ # systemctl status rc-local

● rc-local.service - /etc/rc.local Compatibility

   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)

  Drop-In: /lib/systemd/system/rc-local.service.d

           └─debian.conf

   Active: active (exited) since Thu 2017-08-03 09:41:18 UTC; 14s ago

  Process: 20901 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)



Aug 03 09:41:18 xtom-proxy systemd[1]: Starting /etc/rc.local Compatibility...

Aug 03 09:41:18 xtom-proxy systemd[1]: Started /etc/rc.local Compatibility.

然后你就可以把需要开机启动的命令添加到 /etc/rc.local 文件,丢在 exit 0 前面即可,并尝试重启以后试试是否生效了

 

update-rc.d方式

 

root@debian10:/etc/init.d# ln -s /etc/init.d/startvnc.sh /etc/rc5.d/S99startvnc 

//在图形化界面init 5处设置脚本链接。

root@debian10:/etc/init.d# update-rc.d startvnc.sh start 99 5  

//图形化界面(init 5)才能vnc 。

root@debian10:/etc/init.d# update-rc.d startvnc.sh defaults 99

 

你可能感兴趣的:(debian update-rc.d和rc-local设置脚本启动运行)