Linux基础学习笔记十二:设置程序开机自启动的几种简单方式
假设我们有一个写好的程序/usr/bin/test
,下面就简单列举几种让test
开机自启动的方式!!!
一、使用/etc/rc.local
文件
linux
开机过程之后,会执行rc.local
文件中的脚本程序。
#!/bin/sh -e
/usr/bin/test &
exit 0
在shell
执行命令后加&
是为了让应用程序在后台运行,rc.local
也是一个脚本,主进程在运行这个脚本时必须能够返回,如果在这个脚本里面执行了一些死循环或者其他无法返回的任务,整个系统就很可能卡死在这里,无法启动,所以在这里运行的用户程序必须是能够返回或者本身就使用一些后台运行的进程。
要想删除,就在文件中将命令去掉即可。
二、将用户脚本添加进/etc/init.d/
目录下
先创建一个运行test
的脚本test.sh
:
#!/bin/bash
/usr/bin/test &
然后执行以下指令:
chmod +x test.sh
sudo cp test.sh /etc/init.d/
将文件放到/etc/init.d
目录中,然后将test.sh
脚本链接到开机运行序列中:
cd /etc/init.d
sudo update-rc.d test.sh defaults 77
update-rc.d
是一个系统的链接工具。
defaults 77
指定了脚本的开机执行顺序,数字为0-99
,数字越大执行优先级越低,用户添加的程序最好选择低优先级,因为我们的用户程序可能会依赖一些系统的应用进程。
如果想删除该脚本的自动运行,可以执行如下指令:
sudo update-rc.d -f test remove
三、将用户脚本添加进/etc/profile.d/
目录下
将写好的脚本test.sh
,如下:
#!/bin/bash
/usr/bin/test &
放到目录 /etc/profile.d/
下,系统启动后就会自动执行该目录下的所有shell
脚本。
四、通过chkconfig命令设置
1.将test.sh
移动到 /etc/init.d/
或者/etc/rc.d/init.d/
目录下(前者是后者的软连接)
2.启动文件前面务必添加如下三行代码,否侧会提示chkconfig不支持。
#!/bin/bash
#chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权
#description: 描述
/usr/bin/test &
3.增加脚本的可执行权限
chmod +x /etc/rc.d/init.d/test.sh
4.添加脚本到开机自动启动项目中。添加到chkconfig,开机自启动
cd /etc/rc.d/init.d
chkconfig --add test.sh
chkconfig test.sh on
5.关闭开机启动
chkconfig test.sh off
6.从chkconfig管理中删除test.sh
chkconfig --del test.sh
参考链接:https://www.cnblogs.com/downey-blog/p/10473939.html
这篇文章最后还有使用systemd
控制程序开机自启动的例子,可以看下。