1

Dockerコンテナのバックグラウンドでデーモンサービスを開始したい単純なpythonスクリプトがあります

/sbin/start-stop-daemon --start  --user root --make-pidfile --pidfile /var/lock/subsys/my-application.pid --exec 'python /opt/app/uc/monitor/bin/my-application.py'

シェルでこのコマンドを実行すると、

/sbin/start-stop-daemon: unable to stat //python /opt/app/uc/monitor/bin/my-application.py (No such file or directory)

ただし、シェルで以下のコマンドだけを実行すると機能します

python /opt/app/uc/monitor/bin/my-application.py 

Pythonがインストールされ、すべてのリンクがセットアップされていると確信しています。

助けてくれてありがとう

4

1 に答える 1

1

このエラー メッセージstart-stop-daemonは、 が開くファイルを探しており (操作はファイルを開く前のチェックです)、引数をファイルであるかのようにstat扱っていることを意味します。'python ... '

これを確認するこの例を参照してください。Ubuntu バージョンの start-stop-daemonのマニュアル ページを読んで、セットアップで有効なコマンドを確認する必要がある場合があります。

最も簡単な解決策は、おそらくシェルスクリプトを作成し(たとえば/opt/app/uc/monitor/bin/run-my-application.sh、 )、これをその中に入れることです:

#!/bin/bash
python /opt/app/uc/monitor/bin/my-application.py

必ずchmod +xこのファイルで行ってください。python が見つからない場合は、 を使用which pythonしてパスを検索し、pythonそれをスクリプトで使用します。

今試してください:

/sbin/start-stop-daemon --start  --user root --make-pidfile --pidfile /var/lock/subsys/my-application.pid --exec '/opt/app/uc/monitor/bin/run-my-application.sh'
于 2016-12-15T18:42:58.660 に答える