如果服务未运行,我如何“启动”,但如果服务正在使用 systemd 运行,我如何“重新加载”?

ber*_*kes 2 systemd

我有部署(capistrano),成功后会重新加载 systemd:

sudo systemctl reload myserver.service
Run Code Online (Sandbox Code Playgroud)

但是,在第一次部署之后,该服务尚未运行。在这种情况下,我想改为启动它。

sudo systemctl start myserver.service
Run Code Online (Sandbox Code Playgroud)

systemd 中是否有一个标志或其他技巧可以确定:“服务是否正在运行,然后重新加载,否则启动它”?另一种方法是将其构建到部署工具本身中,但如果 systemd 提供这些功能,我宁愿使用现有功能。

EOh*_*Ohm 6

你可能混淆了一些东西。重新加载或启动 systemd 服务的命令是 systemctl。
你可以试试

sudo systemctl reload-or-restart myserver.service
Run Code Online (Sandbox Code Playgroud)

那应该可以满足您的要求。