systemd:如何在服务文件中使用 ExecStopPre

systemd: How to use ExecStopPre in service files

在我的守护程序停止之前,我需要调用另一个程序。

我的第一个尝试是使用类似于 ExecStartPreExecStopPre 但根据 https://bugs.freedesktop.org/show_bug.cgi?id=73177 这不受支持,我应该使用 "multiple ExecStop".

任何人都有这方面的例子吗?我应该如何从 ExecStop 杀死守护进程?

您使用 ExecStop 放置了多行(来自 node.js 服务):例如

[Service]
ExecStartPre=/usr/local/bin/npm run build
ExecStartPre=-/bin/rm local.sock
ExecStart=/usr/local/bin/npm --parseable start 
ExecStop=/usr/local/bin/npm --parseable stop
ExecStop=-/bin/rm local.sock
RestartSec=300
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodejs
User=nobody
Group=nobody
Environment=NODE_ENV=dev
Environment=PORT=3000
WorkingDirectory=/var/www/nodejs/quaff
UMask=007