我正在尝试在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/