Nginx 使用盐栈和信标在事件上重新启动进程

Nginx 使用盐栈和信标在事件上重新启动进程,nginx,salt-stack,reactor,process-monitoring,Nginx,Salt Stack,Reactor,Process Monitoring,我成功地配置了盐主(带反应堆)和仆从(带信标)。在minion上,我有nginx和beacon配置,可以监视流程: beacons: service: nginx: onchangeonly: True uncleanshutdown: /run/nginx.pid 事件是发送并获取该事件。我尝试重新启动nginx: {% set nginx_running = data['data']['nginx']['running'] %} {% if not n

我成功地配置了盐主(带反应堆)和仆从(带信标)。在minion上,我有nginx和beacon配置,可以监视流程:

beacons:
  service:
    nginx:
      onchangeonly: True
      uncleanshutdown: /run/nginx.pid
事件是发送并获取该事件。我尝试重新启动nginx:

{% set nginx_running = data['data']['nginx']['running']  %}
{% if not nginx_running %}
restart_nginx:
  local.cmd.run:
  - tgt: {{ data['data']['id'] }}
  - arg:
    - 'pkill nginx'
    - 'systemctl restart nginx'
{% endif %}
问题:

  • 这样做对吗
  • 我想发送pkill,因为如果nginx被终止——只有根进程,工作进程仍在工作
  • 我得到信息“错误:指定的cmd'pkill nginx'不是绝对的或不存在

不确定您想要实现什么,但症状应该很容易解决?在shell中,键入
键入pkill
并写下它的路径(在我的Ubuntu 14.04框中,它是
/usr/bin/pkill
);然后将您的脚本更改为使用绝对路径。这有帮助吗?我尝试过-这是一样的。如果有帮助,我将使用RHEL7。我想要实现的是在nginx失败时重新启动nginx。我还尝试使用信标:ps:,但结果更糟。可能是因为: