Linux开机启动
Jakcy
Linux
2021-10-08
10
1,启动脚本
vim /soft/project/test/start.sh
/bin/echo $(/bin/date +"%F %T") >> /soft/project/test/test.log
2,设置开机启动
方法一,chkconfig管理
将脚本做成服务
ln -s /soft/project/test/start.sh /etc/init.d/qidong
在脚本中配置chkconfig参数
#!/bin/bash
# chkconfig: 2345 85 15
echo $(/bin/date +%T) >> /soft/project/test/test.log
chkconfig参数说明:服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是85,启动的优先级是85,关闭的优先级是15。优先级范围是0-100,数字越大,优先级越低。如该服务缺省不再任何运行级启动,则以 - 代替运行级别。 设置开机启动
chkconfig --add qidong
chkconfig --list qidong
重启电脑验证
reboot
cat /soft/project/test/test.log
关闭开机启动
chkconfig qidong off
chkconfig --list qidong
chkconfig配置清理
chkconfig --del qidong
chkconfig --list qidong
方法二,修改/etc/rc.local
在文件/etc/rc.local最后添加启动命令
vim /etc/rc.local
nohup /soft/project/test/start.sh >/dev/null 2>/dev/null
# 注意:这段代码一定要能执行完,保证自动执行后面下一行脚本
重启电脑验证
reboot
cat /soft/project/test/test.log
两种方法的区别
chkconfig 脚本都是以服务的形式启动的,服务会在后台一直运行,所以系统在执行init.d目录中的服务脚本时,会分别单独为每个服务脚本启动一个非登录非交互式shell来始终在后台运行服务脚本一直到用户退出登录,关闭系统,这些始终运行在各个非登录非交互式的shell中的服务脚本才会停止运行。
/etc/rc.local rc.local这个脚本中的命令不能像服务脚本那样始终占用这个系统为了执行rc.local而启动的非登录非交互式shell,而应该每一条命令都可以自动执行完毕,一直执行到:exit 0 这句命令,而且是必须执行到这句命令,否则系统将卡在这个脚本,无法继续开机。