×

为systemd服务创建别名

2021-04-15 20:20:25 Falcon

安装了openresty 之后,启用openresty 作为systemd的服务,移除了原来nginx的服务。然而一些旧的脚本仍然需要调用nginx服务,比如acme.sh在部署证书时会调用 systemctl force-reload nginx  重启nginx。

那么有没有可能把openresty加一个nginx的别名呢,答案是可以的,systemd支持Alias配置。

这是默认的openresty.service的内容,服务启用后位于 /usr/lib/systemd/system/openresty.service

[Unit]
Description=The OpenResty Application Platform
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t
ExecStart=/usr/local/openresty/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[Install] 的配置项下加一行

Alias=nginx.service

再执行一次

systemctl enable openresty

将在/etc/systemd/system/下生成一个 nginx.service

Created symlink from /etc/systemd/system/nginx.service to /usr/lib/systemd/system/openresty.service.

可以看出它们是同一个service, 因为具有相同的PID。

更新2022.05.22:

如果之前已经启动openresty ,需要重启openresty service方可生效

systemctl restart openresty

 

 

本文收录于