/usr/lib/systemd/system下编辑需要自动启动的服务文件,例如
touch /usr/lib/systemd/system/mysql.service
重新加载配置自启配置文件,设置开机自启
systemctl reload *.servicesystemctl 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=rootGroup=root[Install] WantedBy=multi-user.target 服务安装相关设置,可设置为多用户
一、mysql开机自启(手动安装的mysql)
[Unit]Description=MySQL Server(5.7.32)Documentation=main:mysqld(8)Documentation=/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlExecStart=/opt/mysql/mysql-5.7.32/bin/mysqld --user=rootLimitNOFILE=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-failurePrivateTmp=trueUser=rootGroup=root[Install]WantedBy=multi-user.target
activemq启动脚本
#!/bin/shexport ACTIVEMQ_HOME=/opt/mqtt/activemqexport JAVA_HOME=/opt/java/java_180sh $ACTIVEMQ_HOME/bin/activemq start
activemq停止脚本
#!/bin/shexport ACTIVEMQ_HOME=/opt/mqtt/activemqexport JAVA_HOME=/opt/java/java_180sh $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-failurePrivateTmp=trueUser=rootGroup=root[Install]WantedBy=multi-user.target
keycloak 启动脚本
#!/bin/shexport JAVA_HOME=/opt/java/java_180export KEYCLOAK_HOME=/opt/keycloak/keycloaksh $KEYCLOAK_HOME/bin/standalone.sh &
keycloak 停止脚本
#!/bin/shkill -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-failurePrivateTmp=trueUser=rootGroup=root[Install]WantedBy=multi-user.target
tomcat启动脚本
#!/bin/shexport JAVA_HOME=/opt/java/java_180TOMCAT_HOME=/opt/tomcat/tomcatsh $TOMCAT_HOME/bin/startup.sh
tomcat停止脚本
#!/bin/shexport JAVA_HOME=/opt/java/java_180TOMCAT_HOME=/opt/tomcat/tomcatsh $TOMCAT_HOME/bin/shutdown.sh