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 这句命令,而且是必须执行到这句命令,否则系统将卡在这个脚本,无法继续开机。