/etc/rc.local 脚本

/etc/rc.local 脚本是一个Ubuntu开机后会自动执行的脚本,可以在该脚本内添加命令行指令。

该脚本位于/etc/路径下,需要root权限才能修改。

该脚本具体格式如下:

vim /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.
  
exit 0

注意: 一定要将命令添加在 exit 0之前,exit 0 之后的脚本不会执行,但可用做注释哈

 

开机脚本不执行

/etc/rc.local 实际上是一个文件软链接,指向真实的文件是 /etc/rc.d/rc.local

# ll /etc/rc.local           
lrwxrwxrwx. 1 root root 13 8月  14 00:20 /etc/rc.local -> rc.d/rc.local
# ll /etc/rc.d/rc.local 
-rw-r--r--. 1 root root 615 11月 21 10:18 /etc/rc.d/rc.local

 

有时,在 /etc/rc.local 文件里设置脚本后,发现不执行脚本,原因是没有给 /etc/rc.d/rc.local 授权为可执行

如上,发现 /etc/rc.local(软链文件)是可执行状态,但是 /etc/rc.d/rc.local(真实文件)不是可执行状态

因此,授权 /etc/rc.d/rc.local 为可执行状态:

chmod +x /etc/rc.d/rc.local 

以后设置脚本也直接放到 /etc/rc.d/rc.local 里,且脚本也设置为可执行状态:

chmod +x /root/script/xxxx.sh

 

Ubuntu 添加一个开机启动脚本

1、新建个脚本文件new_service.sh

#!/bin/bash
# mimvp.com  auto start
  
exit 0

 

2、设置权限

sudo chmod 755 new_service.sh

 

3、把脚本放置到启动目录下

sudo mv new_service.sh /etc/init.d/

 

4、将脚本添加到启动脚本

cd /etc/init.d/

sudo update-rc.d new_service.sh defaults 90

 

5、移除Ubuntu开机脚本

sudo update-rc.d -f new_service.sh remove

 

 

参考推荐

Linux rc.local 命令不执行

Ubuntu 下关闭apache服务的开机自启动