运行 后台服务不卡顿
Running a service in the background withouth getting stuck
目前我在尝试在后台 运行 a process/script 时遇到问题[主人在小兵上启动它]
脚本是这样的:
#!/bin/bash
nohup ping 8.8.8.8 >/dev/null&
我从大师那里调用它:
Process-Name:
service.running:
- name: Script-Name
- enable: True
出于某种原因,它卡在了 master 上,我已经阅读了一些关于这个问题的文章[显然之前发生过]并尝试了他们的解决方案,但显然 service state
似乎没有任何内容工作。
有没有办法解决这个问题?
简而言之,您应该先将脚本配置为系统守护程序(SysV init.d 脚本,或systemd 单元,或...取决于OS).
详情
service.running
功能需要正确配置系统服务 ~ 守护进程。
例如,在基于 RHEL 的 Linux 上,如果您在其中一个命令的输出中没有看到您的脚本名称,您应该首先将其配置为适当的服务(即 a separate topic):
# systemd
systemctl list-units | grep your_service_name
# SysV init.d
chkconfig --list | grep your_service_name
并且因为您想在后台启动它,cmd.run
函数也不是正确的工具:
- 它只会报告脚本启动成功,而不会等待其完成结果。
- 它每次都会启动脚本的新实例。
但是,如果您只想 "fire and forget",请使用 cmd.run
.
目前我在尝试在后台 运行 a process/script 时遇到问题[主人在小兵上启动它]
脚本是这样的:
#!/bin/bash
nohup ping 8.8.8.8 >/dev/null&
我从大师那里调用它:
Process-Name:
service.running:
- name: Script-Name
- enable: True
出于某种原因,它卡在了 master 上,我已经阅读了一些关于这个问题的文章[显然之前发生过]并尝试了他们的解决方案,但显然 service state
似乎没有任何内容工作。
有没有办法解决这个问题?
简而言之,您应该先将脚本配置为系统守护程序(SysV init.d 脚本,或systemd 单元,或...取决于OS).
详情
service.running
功能需要正确配置系统服务 ~ 守护进程。
例如,在基于 RHEL 的 Linux 上,如果您在其中一个命令的输出中没有看到您的脚本名称,您应该首先将其配置为适当的服务(即 a separate topic):
# systemd
systemctl list-units | grep your_service_name
# SysV init.d
chkconfig --list | grep your_service_name
并且因为您想在后台启动它,cmd.run
函数也不是正确的工具:
- 它只会报告脚本启动成功,而不会等待其完成结果。
- 它每次都会启动脚本的新实例。
但是,如果您只想 "fire and forget",请使用 cmd.run
.