Linux脚本设置开机启动
一、编写脚本
新建脚本startos.sh。
#!/bin/sh
#chkconfig: 2345 20 80
#description:开机启动脚本,初始化开启配置。
# 2345是运行等级,20是开机启动优先级,80是关机关闭优先级
# 1.关闭防火墙
systemctl stop firewalld
# 2.启动eureka服务器
param_today=$(date "+%Y%m%d")
/usr/bin/nohup /usr/local/java/jdk1.8.0_231/bin/java -jar /root/8001/fordream-spring-cloud-eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod>/root/8001/eureka-server-8001-${param_today}.log 2>&1 &
/usr/bin/nohup /usr/local/java/jdk1.8.0_231/bin/java -jar /root/8002/fordream-spring-cloud-eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod>/root/8002/eureka-server-8002-${param_today}.log 2>&1 &
/usr/bin/nohup /usr/local/java/jdk1.8.0_231/bin/java -jar /root/8003/fordream-spring-cloud-eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod>/root/8003/eureka-server-8003-${param_today}.log 2>&1 &
介绍:
1.1 脚本头
前面三行固定写法:第一行意思是该脚本使用/bin/sh解释器执行;第二行是设置脚本的运行级、开启优先级、关闭优先级;第三行是脚本描述;该三行不能省略,否则无法添加为启动程序!
不添加脚本头报错如下:
[root@fordream131 init.d]# chkconfig --add startos.sh
service startos.sh does not support chkconfig
1.2 脚本内容
本案例包含两部分:(1)关闭防火墙;(2)启动eureka服务;
1.3 注意事项
由于在开机启动的时候各个功能启动是有时间顺序的,所以无法保证在执行开机启动脚本的时候所有的系统命令、环境变量等都已经加载完成,因此脚本中使用到的所有的命令尽量都使用全路径,否则会导致脚本在测试时(单独执行)可以,但是放到启动脚本里面无法执行。
二、配置及添加开机启动
1.1 脚本处理
(1)将脚本拷贝到/etc/init.d/文件夹下面;
(2)修改脚本属性,使脚本具有执行权限;
cp startos.sh /etc/init.d/startos.sh
cd /etc/init.d/
chmod +x startos.sh
1.2 添加开机启动
chkconfig --add startos.sh
chkconfig startos.sh on
1.3 测试
开机重启后发现效果已经达到,说明开机启动脚本正常无误!
[root@fordream131 ~]# ps -ef | grep java
root 1261 1 10 13:34 ? 00:00:18 /usr/local/java/jdk1.8.0_231/bin/java -jar /root/8001/fordream-spring-cloud-eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod
root 1262 1 10 13:34 ? 00:00:17 /usr/local/java/jdk1.8.0_231/bin/java -jar /root/8002/fordream-spring-cloud-eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod
root 1263 1 10 13:34 ? 00:00:18 /usr/local/java/jdk1.8.0_231/bin/java -jar /root/8003/fordream-spring-cloud-eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod
[root@fordream131 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Mon 2020-11-16 13:34:09 CST; 9min ago
Docs: man:firewalld(1)
Process: 715 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 715 (code=exited, status=0/SUCCESS)
Nov 16 13:33:58 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 16 13:34:05 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 16 13:34:07 fordream131.com systemd[1]: Stopping firewalld - dynamic firewall daemon...
Nov 16 13:34:09 fordream131.com systemd[1]: Stopped firewalld - dynamic firewall daemon.
版权声明:本文为yaozw0112原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。