centos7设置程序开机启动方案

/usr/lib/systemd/system下编辑需要自动启动的服务文件,例如

touch /usr/lib/systemd/system/mysql.service

重新加载配置自启配置文件,设置开机自启

systemctl reload *.service
systemctl enable mysql.service
systemctl常见命令:
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务

配置文件说明

[Unit]:服务的说明
Description:描述服务
After:描述服务类别

[Service]            服务运行参数的设置
Type=forking         后台运行的形式
ExecStart            启动命令
ExecReload           重启命令
ExecStop             停止命令
PrivateTmp=True      服务分配独立的临时空间
User=root
Group=root

[Install]            
WantedBy=multi-user.target   服务安装相关设置,可设置为多用户

一、mysql开机自启(手动安装的mysql)

[Unit]
Description=MySQL Server(5.7.32)
Documentation=main:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/mysql-5.7.32/bin/mysqld --user=root
LimitNOFILE=5000

二、activemq开机自启
如果java是手动安装的,则必须在启动脚本或停止脚本中添加JAVA_HOME路径,如果不添加,不管是否设置了java环境变量都会报错;如果使用包安装,则不存在此问题


[Unit]
#服务描述
Description=activemq Service
#设置在某个服务启动后启动
After=network.target

[Service]
#后台运行的形式
Type=forking
#启动命令,执行该脚本
ExecStart=/opt/mqtt/activemq/bin/startup-script/start-activemq.sh
#停止命令,执行该脚本
ExecStop=/opt/mqtt/activemq/bin/startup-script/stop-activemq.sh
#启动失败时,执行重启命令
Restart=on-failure
PrivateTmp=true
User=root
Group=root

[Install]
WantedBy=multi-user.target

activemq启动脚本

#!/bin/sh
export ACTIVEMQ_HOME=/opt/mqtt/activemq
export JAVA_HOME=/opt/java/java_180

sh $ACTIVEMQ_HOME/bin/activemq start

activemq停止脚本

#!/bin/sh
export ACTIVEMQ_HOME=/opt/mqtt/activemq
export JAVA_HOME=/opt/java/java_180

sh $ACTIVEMQ_HOME/bin/activemq stop

三、keycloak 开机自启


[Unit]
#服务描述
Description=keycloak Service
#设置在某个服务启动后启动
After=network.target mysql.service

[Service]
#后台运行的形式
Type=forking
#启动命令,执行该脚本
ExecStart=/opt/keycloak/keycloak/bin/startup-script/start-keycloak.sh
#停止命令,执行该脚本
ExecStop=/opt/keycloak/keycloak/bin/startup-script/stop-keycloak.sh
#启动失败时,执行重启命令
Restart=on-failure
PrivateTmp=true
User=root
Group=root

[Install]
WantedBy=multi-user.target

keycloak 启动脚本

#!/bin/sh

export JAVA_HOME=/opt/java/java_180
export KEYCLOAK_HOME=/opt/keycloak/keycloak

sh $KEYCLOAK_HOME/bin/standalone.sh &

keycloak 停止脚本

#!/bin/sh
kill -9 $(ps aux | grep /opt/keycloak/keycloak/standalone | awk 'NR==1{print $2}')

四、tomcat开机自启,如果java是yum安装则,启动脚本和停止脚本可以不用写,配置的时候直接在启动和停止的地方写startup.sh和shutdown.sh的绝对路径就OK

[Unit]
#服务描述
Description=Tomcat Service
#设置在某个服务启动后启动
After=network.target mysql.service activemq.service

[Service]
#后台运行的形式
Type=forking
#启动命令,执行该脚本
ExecStart=/opt/tomcat/startup-script/start-tomcat
#停止命令,执行该脚本
ExecStop=/opt/tomcat/startup-script/stop-tomcat
#启动失败时,执行重启命令
Restart=on-failure
PrivateTmp=true
User=root
Group=root

[Install]
WantedBy=multi-user.target

tomcat启动脚本

#!/bin/sh

export JAVA_HOME=/opt/java/java_180
TOMCAT_HOME=/opt/tomcat/tomcat

sh $TOMCAT_HOME/bin/startup.sh

tomcat停止脚本

#!/bin/sh

export JAVA_HOME=/opt/java/java_180
TOMCAT_HOME=/opt/tomcat/tomcat

sh $TOMCAT_HOME/bin/shutdown.sh
原文地址:https://www.cnblogs.com/InternetJava/p/15731347.html