Debian10系统systemctl服务管理方式下Nginx设置开机启动

linux服务目前主要有service和systemctl两种管理方式,systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动,对应的进程管理命令是systemctl。

1. 建立服务文件

命令 sudo vim /usr/lib/systemd/system/nginx.service,进入文件,将以下代码复制进去保存即可

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s reload
ExecStop=/bin/kill -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

参数说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]:服务的说明
Description=:描述服务
After=:描述服务类别

[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart=为服务的具体运行命令所在路径
ExecReload=为重启命令
ExecStop=为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径

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

2. 设置文件权限并使文件生效

命令:

1
2
sudo chmod 755 /usr/lib/systemd/system/nginx.service
sudo systemctl daemon-reload

3.设置开机启动

命令:

1
sudo systemctl enable nginx.service

只有返回类似 Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service → /etc/systemd/system/nginx.service提示才能够确定设置成功。如果不是请检查上面的文件.

4. 其他命令

1
2
3
4
5
6
7
8
9
systemctl is-enabled *.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务

*指所设置的程序名称 比如:nginx.service

转载于nginx在systemctl方式开机自启动
参考资料:

1.nginx添加service以及随开机启动: