/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