使用salt-tack停止systemd服务

时间:2016-04-07 09:09:29

标签: raspbian salt-stack

我正在使用salt-stack来管理我的生产机器。 奴才运行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。

有没有办法告诉盐使用systemd?

修改

尝试添加

providers:
  service: systemd
按照Eric的建议到/ etc / salt / minion。仍然得到相同的错误

编辑2

从2015.8.3开始,使用Erics建议+升级版盐水来修复问题至2015.8.8

1 个答案:

答案 0 :(得分:2)

这几乎可以肯定,因为较新的Raspbian基于Debian 8,而Salt的系统执行模块无法正确检测较新的Raspbian需要systemd。 OP可以使用sudo salt my_minion grains.items的输出回复此消息吗?请编辑您认为有个人身份信息的任何谷物,我主要对处理操作系统名称和版本的谷物感兴趣。

编辑:还有一件事。请确认Raspbian框中存在/run/systemd/system。我认为这里发生的是两个模块都声称是提供service模块的模块。

https://github.com/saltstack/salt/pull/32421应该解决这个问题,但你可以通过在你的Raspbian爪牙上添加以下/etc/salt/minion来立即解决这个问题(无需等待新的Salt版本):

providers:
  service: systemd