linux开机自动执行脚本、运行程序


用途、大致步骤

测试环境centos7

用途:linux开机自动执行脚本,启动java程序。 步骤: 1、在/etc/rc.d/init.d文件夹中创一个开机能够执行的脚本autoStart.sh 2、在autoStart.sh脚本中添加想要执行的代码或者调用自定义的脚本other.sh


一、创建脚本

1、autoStart.sh 放到/etc/rc.d/init.d文件夹中、权限赋值777或者755都行

#! /bin/sh
# chkconfig: 3456 99 10
. /etc/profile

# 这段做测试使用,开机启动后会在/root目录创建一个autostart.log文件,则证明生效了
echo $(date "+%Y-%m-%d %H:%M:%S") >> /root/autostart.log
# 下面编写你需要执行的命令或者脚本
#sudo bash /opt/other.sh #我这里是调用其它地方的脚本,方便隔离开,后面有其它想开机自启的在这里加执行命令就可以了;
exit 0

2、other.sh可以放在系统中的任何位置、权限777或者755

这里面就是存放的你自己需要执行的代码了,下面只做示例使用,我的是放在/opt/目录下;

#! /bin/bash
# 导入环境变量;注意:不能少、不能少、不能少
. /etc/profile
# 重要:切换到当前脚本的路径下
CURPATH=$(cd "$(dirname "$0")"; pwd) && cd  $CURPATH

# 下面就是你自己需要执行的具体命令了:我的是启动java程序
# nohup java -jar  /opt/self-server.jar

二、把autoStart.sh注册到开机启动里面

1、autoStart.sh脚本放到/etc/rc.d/init.d文件夹中后执行命令;注意:先放脚本在执行命令

chkconfig --add autoStart.sh

2、执行完毕可执行下面命令查看是否添加上了

chkconfig --list

3、重启系统,查看你自己的脚本是否被执行

sudo reboot

三、相关说明

1、为什么要导入环境变量. /etc/profile

2、切换到当前脚本路径CURPATH=$(cd "$(dirname "$0")"; pwd) && cd $CURPATH

因为autoStart.sh是在/etc/rc.d/init.d目录下,如果是调用other.sh,那么other.sh的路径也变相于是在/etc/rc.d/init.d目录下,所以在other.sh中使用相对路径的话,会提示找不到各种文件、文件夹;

3、chkconfig命令

4、取消注册开机自启

chkconfig --del autoStart.sh

5、推荐autoStart.sh中不要写过多的代码

autoStart.sh里面推荐只写调用其它脚本的代码,这样的话便于维护,后续如果有其它需要开机自动执行或者想取消的,只需要在里面添加、删除调用命令就可以了,不需要再来搞一遍上述操作;

四、总结

1、打开冰箱; 2、把大象塞进去;

经验分享 程序员 微信小程序 职场和发展