shell - 在 ansible 中对可执行文件进行守护进程

标签 shell daemon ansible

我正在尝试在ansible中创建一个任务,该任务执行shell命令以使用&在守护进程模式下运行可执行文件。类似于以下内容

-name: Start daemon
  shell: myexeprogram arg1 arg2 &

我看到的是,如果我保留&任务立即返回并且进程未启动。如果我删除 & ansible 任务会等待相当长的时间而不返回。

感谢有关通过ansible以守护进程模式启动程序的正确方法的建议。请注意,我不想将其作为服务运行,而是基于特定条件的临时后台进程。

最佳答案

使用“&”运行程序不会使程序成为守护进程,它只是在后台运行。要创建“真正的守护进程”,您的程序应该执行描述的步骤 here .

如果你的程序是用C编写的,你可以调用daemon()函数,它会为你做这件事。然后,即使末尾没有“&”,您也可以启动您的程序,并且它将作为守护进程运行。

另一个选项是使用 daemon 调用您的程序,它也应该可以完成这项工作。

- name: Start daemon
  shell: daemon -- myexeprogram arg1 arg2

关于shell - 在 ansible 中对可执行文件进行守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806673/

相关文章:

bash - 转换为数字

python - 从 Python 脚本执行 shell 命令

C 将其他 C 程序作为主 argv 传递

linux - 删除特殊字符和批量重命名

Hadoop Yarn 守护进程停止运行

daemon - 如何正确使用 log_daemon_msg、log_end_msg、log_progress_msg 编写合适的守护程序脚本?

docker - 使用 Ansible 部署 docker 时如何设置运行参数?

java - 对于 gradle 守护进程无法与 ClearCase 一起使用该怎么办?

dependencies - 如何为角色指定 ansible 前置任务?

Ansible - 使用用户输入选择变量