编写脚本文件
- 创建脚本文件
touch test.sh - 编写脚本内容
#!/bin/bash
#description:开机自启脚本
source /etc/profile
nohup java -jar /usr/local/apps/property_service-0.0.1-SNAPSHOT.jar > /usr/local/shell_list/property_service.txt 2>& 1 &
nohup java -jar /usr/eureka-0.0.1-SNAPSHOT.jar > /usr/eureka-0.0.1-SNAPSHOT.jar.txt 2>& 1 & (这个是脚本执行的内容)
!!!其中 source /etc/profile 为告知定时任务当前服务器设置的环境变量,以便linux 系统开机启动时通过定时任务来自动执行脚本时不知道环境变量导致 java 等找不到的问题 。!!!
方法一(建议使用)
- 赋予脚本可执行权限( /usr/local/shell_list/test.sh 为脚本路径)
chmod +x /usr/local/shell_list/test.sh - 编辑 /etc/rc.d/rc.local 文件,在末尾增加如下内容:
/usr/local/shell_list/test.sh - 赋予可执行权限(在Centos7中,/etc/rc.d/rc.local 的权限被降低了,所以需要执行如下命令赋予其可执行权限)
chmod +x /etc/rc.d/rc.local
方法二
- 移动脚本到自动位置(/etc/rc.d/init.d)
mv /usr/local/shell_list/test.sh /etc/rc.d/init.d - 赋予可执行权限
chmod +x /etc/rc.d/init.d/test.sh - 添加脚本可以chkconfig (编辑脚本文件,开头加入下面两句)
#!/bin/bash# chkconfig: 2345 10 90 # description: myservice ....(描述)
其中2345是默认启动级别,级别有0-6共7个级别。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。
- 添加脚本到开机自动启动项目中(顺序执行下列命令,其中test.sh 更改为你自己的脚本名)
cd /etc/rc.d/init.d
chkconfig --add test.sh(脚本名)
chkconfig test.sh(脚本名) on
以上两种方法均已在centos7系统上验证过,如有不对,还望指教,谢谢。