Linux系统【Ubuntu】开机自启脚本及配置
1、使用vim命令在/etc/init.d
目录下新建一个xx.sh,文件名可自定义,以test.sh为例
vim /etc/init.d/test.sh
也可以用 touch test.sh
命令创建文件
复制代码:
#!/bin/sh
### BEGIN INIT INFO
# Provides: test.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the test.sh daemon
# Description: starts test.sh using start-stop-daemon
### END INIT INFO
# 睡眠120秒 (如果不需要,删除既可)
sleep 120
# 防止jdk加载慢
export JAVA_HOME=/home/jdk/jdk1.8.0_321
export PATH=${JAVA_HOME}/bin:$PATH
cd /home/directory/
nohup java -jar test-0.0.1-SNAPSHOT.jar --spring.config.location=./config/application.yml > nohup.out 2>&1 &
注意:上面的注释要存在,不然不生效。
说明:
① /home/jdk/jdk1.8.0_321 为安装的jdk路径,根据自己的安装路径配置。
② /home/directory/ 为存放jar包的路径,根据自己放置的路径配置。
③ test-0.0.1-SNAPSHOT.jar 为jar包名称。
④ --spring.config.location=./config/application.yml 指定jar包的配置文件。
⑤ nohup.out 是日志输出文件名。
编辑完成后,按ESC键,输入:wq
按回车保存并退出。
2、保存成功以后,设置文本权限,否则不生效
sudo chmod 755 /etc/init.d/test.sh
3、将命令脚本添加到启动脚本中去
cd /etc/init.d
sudo update-rc.d test.sh defaults
说明:如果需要设置启动优先级: 100表示优先级,数越大,执行的越晚
sudo update-rc.d test.sh defaults 100
4、如需移除自启动,运行以下命令
cd /etc/init.d
sudo update-rc.d -f test.sh remove
5、输入 reboot
命令重启服务器,使用命令查看jar包是否已经成功自启动。
ps -ef|grep java
update-rc.d 的详细参数
使用 update-rc.d
命令需要指定脚本名称和一些参数,它的格式看起来是这样的(需要在 root 权限下):
update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults
update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
update-rc.d <basename> start|stop <NN> <runlevels>
-n: not really
-f: force
其中:
disable|enable
:代表脚本还在/etc/init.d中,并设置当前状态是手动启动还是自动启动。start|stop
:代表脚本还在/etc/init.d中,开机,并设置当前状态是开始运行还是停止运行。(启用后可配置开始运行与否)NN
:是一个决定启动顺序的两位数字值。(例如90大于80,因此80对应的脚本先启动或先停止)runlevels
:则指定了运行级别。
参考文献
- https://www.linuxidc.com/Linux/2017-09/147166.htm
- https://blog.csdn.net/weixin_43455581/article/details/107815743