我有以下服务配置:
$ systemctl cat bluetooth
# /lib/systemd/system/bluetooth.service
[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
ConditionPathIsDirectory=/sys/class/bluetooth
[Service]
Type=dbus
BusName=org.bluez
ExecStart=/usr/lib/bluetooth/bluetoothd
NotifyAccess=main
#WatchdogSec=10
#Restart=on-failure
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNPROC=1
#RestartSec=5
[Install]
WantedBy=bluetooth.target suspend.target
Alias=dbus-org.bluez.service
我在部分 ( )suspend.target
的WantedBy=
参数中添加了要在恢复时重新启动的服务,但这不起作用。[Install]
man systemd.unit
EDIT0:该服务不会在挂起时停止,但需要在恢复后重新启动,因为该服务不支持我的配置上的挂起/恢复操作。
EDIT1:suspend.target
也应该工作,因为根据man systemd.special
:
suspend.target A special target unit for suspending the system. This pulls in sleep.target.
EDIT2:似乎该命令sudo systemctl edit --full bluetooth
创建了另一个副本,一旦保存文件bluetooth.service
,该副本/etc/systemd/system/bluetooth.service
就变得不同(从)。/lib/systemd/system/bluetooth.service
我刚刚注意到我有两个不同的版本,bluetooth.service
所以我有点困惑。
如何在恢复后重新启动 systemd 服务?
创建新的 systemd 服务:
粘贴到它旁边:
启用并启动新创建的服务:
尝试
/usr/lib/pm-utils/sleep.d
在那里创建脚本:不要忘记
sudo chmod +x /usr/lib/pm-utils/sleep.d/70yourservice