自定义服务文件,添加到系统服务,通过service管理

1.写服务文件:如nginx.service、redis.service。
[Unit]
Description=My Service‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  # 服务的描述,可以是任何文本
After=network.target‌  ‌  ‌  # 指定服务应该在哪些其他服务启动之后启动。在本例中,服务需要在`network.target`之后启动

[Service]‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌  ‌ 
Type=simple‌  ‌  ‌  ‌  ‌  ‌  ‌# 指定服务的类型。在本例中,服务是一个简单的进程,因此使用`Type=simple`
WorkingDirectory=/path/to/my/service‌  ‌  # 指定服务的工作目录,即服务将在哪个目录下运行。在本例中,工作目录是`/path/to/my/service`
ExecStart=/path/to/my/service/executable arg1 arg2‌  # 指定服务启动时要执行的命令,以及命令的参数。在本例中,服务将执行`/path/to/my/service/executable`并带有`arg1`和`arg2`两个参数
ExecStop=/bin/kill -TERM $MAINPID‌  ‌  ‌  ‌  # 指定服务停止时要执行的命令。在本例中,使用`/bin/kill`命令发送`TERM`信号以终止服务进程
ExecReload=/usr/bin/supervisorctl reload
Restart=always‌  ‌  # 指定服务发生故障时应该如何重启。在本例中,使用`always`参数,表示服务在停止后应该立即重启
User=myuser‌  ‌  # 指定服务运行的用户
Group=mygroup‌  ‌  # 指定服务运行的用户组
Environment=VAR1=value1‌  ‌  # 指定服务运行时使用的环境变量。在本例中,指定了`VAR1`和`VAR2`两个环境变量及其值
Environment=VAR2=value2‌  ‌  

[Install]
WantedBy=multi-user.target‌  ‌ # 指定服务在哪个运行级别下应该启动。在本例中,服务将在`multi-user.target`级别下启动。
2.文件保存在目录下:以754的权限。目录路径:/usr/lib/systemd/system。
3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload
# 设置为开机自启
systemctl enable nginx.service

# 停止开机自启
systemctl disable nginx.service

# 查看该服务是否为开机自启状态
systemctl is-enable nginx.service