Linux 服务开机自启动

128 阅读1分钟

编写service文件

Redis

vim /etc/systemd/system/redis.service

[Unit]
# 服务描述
Description=Redis Daemon Service 
# 服务依赖,再这些服务后启动本服务
After=network.target 
# 服务依赖,再这些服务前启动本服务
#Before=nss-lookup.target

[Service]
# 默认值,systemd认为该服务将立即启动,一般运行前台命令
Type=simple
# 启动当前服务的命令
ExecStart=/httx/run/redis-7.2.4/bin/redis-server
# 停止当前服务时执行的命令
ExecStop=/bin/kill -SIGINT $MAINPID
# 定义何种情况 Systemd 会自动重启当前服务,当前是仅在服务进程异常退出时重启(kill 进程会立刻重启)
Restart=on-failure 
# 自动重启当前服务间隔的秒数
RestartSec=3s
# 设置进程在执行时使用的用户,当前是root
User=root 
# 设置进程在执行时使用的用户组,当前是root
Group=root

[Install]
#表示该服务所在的服务组,当前是服务所在的服务组是multi-user.target
WantedBy=multi-user.target

Tomcat

[Unit]
Description=Tomcat 9 servlet container
After=network.target
 
[Service]
# 命令是daemon模式运行的
Type=forking
 
User=tomcat
Group=tomcat
 
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
 
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
 
PIDFile=/opt/tomcat/temp/tomcat.pid
 
[Install]
WantedBy=multi-user.target

service相关命令

systemctl start 服务名 开启服务

systemctl stop 服务名 关闭服务

systemctl status 服务名  显示状态

systemctl restart 服务名  重启服务

systemctl enable 服务名  开机启动服务

systemctl disable 服务名  禁止开机启动

systemctl daemon-reload 修改服务配置文件后需要重新加载服务

systemctl is-enabled 服务名 查询是否自启动服务