mybash.sh
は、(理論的に)永遠に実行されるはずのPythonプログラムを呼び出します。これは、非同期時間制限が無限であることを意味します。しかし、以下のような行を使用すると、制限時間後に停止します。この場合、です。 async: 45
を削除すると、Pythonプログラムが継続的に実行されるため、実行が不可能になることはありません。可能性がありますbashファイルを忘れて、ターミナルを忘れ返す
- name: fire and forget
command: sh mybash.sh
async: 45
poll: 0
どのように私は(mybash.shによって呼び出さすなわち、このPythonプログラムは永遠に実行されると、端末内ansibleの実行を待つべきではありません)、端末内ansibleのansible、火災忘れて返すように実行を作るのですか?
これは実際には悪い習慣です。代わりに、サービスを設定するのに頼らなければなりません。 –
また、 'sh'はbashではありません。 'sh'で起動すると、これはPOSIXのshスクリプトであり、bashスクリプトではありません。 –
...プログラムを起動してバックグラウンドで実行するプロセスからプログラムを切り離したい場合、実行したい動詞は "daemonize"自体であり、多くの検索が行われますその結果、自己デーモン化プログラム/スクリプトは悪い習慣です。オペレーティングシステムが提供するプロセス監視システムを使用する方が良いでしょう(ブート時に起動するように設定する、失敗後に再起動を管理するなど)。 –