Linux脚本设置开机启动

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版权协议,转载请附上原文出处链接和本声明。