如何解决通过python启用系统服务
根据Starting a systemd service via python,我可以使用D-Bus API来启动/停止Systemd服务,如下所示:
import dbus
sysbus = dbus.SystemBus()
systemd1 = sysbus.get_object('org.freedesktop.systemd1','/org/freedesktop/systemd1')
manager = dbus.Interface(systemd1,'org.freedesktop.systemd1.Manager')
job = manager.RestartUnit('sshd.service','fail')
但是,如果我想在那里启用systemd服务,该怎么办?我已经尝试用RestartUnit
替换EnableUnit
,但是得到了:
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Unknown method EnableUnit or interface org.freedesktop.systemd1.Manager.
解决方法
好。我想通了,这要归功于Terry Spotts。
job = manager.EnableUnitFiles(['ssh.service'],False,True)
manager.Reload()
第一个参数是系统单位文件名称的列表。
第二个参数是一个布尔值,用于控制该单元是应仅在运行时启用(true,/ run)还是在持久状态(false,/ etc)启用。
第三个参数是一个布尔值,用于控制是否在必要时替换指向其他单元的符号链接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。