【发布时间】:2016-04-10 23:08:57
【问题描述】:
我正在使用 salt-stack 来管理我的生产机器。 minions 运行 Raspbian,我和我已经配置了一个 systemd 服务。服务配置文件位于 /lib/systemd/system/my_service.service
当我运行以下命令时:
sudo salt my_minion service.stop my_service
返回如下错误:
ERROR: Unable to run command ['/etc/init.d/my_service', 'stop'] with the context {'with_communicate': True, 'shell': False, 'env': {'LANG': 'en_GB.UTF-8', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'LC_ALL': 'C'}, 'stdout': -1, 'close_fds': True, 'stdin': None, 'stderr': -2, 'cwd': '/root'}, reason: [Errno 2] No such file or directory
我了解 salt 尝试使用 sysvinit 而不是 systemd。
有没有办法告诉 salt 使用 systemd?
编辑:
尝试添加
providers:
service: systemd
按照 Eric 的建议发送到 /etc/salt/minion。还是出现同样的错误
编辑 2
使用 Erics 建议 + 将 salt-minion 从 2015.8.3 升级到 2015.8.8 解决了这个问题
【问题讨论】:
-
检查 salt.states.services ,它说“服务的当前状态由 init/rc 脚本状态命令的返回码决定。” .只需使用 salt modules.cmd 作为解决方法。
-
但是肯定有一个salt模块可以处理systemd服务:docs.saltstack.com/en/latest/ref/modules/all/…我就是不知道怎么用它来做salt
标签: raspbian salt-stack