私はubuntu 10.4 LTSの最新のスタートアップバージョンを使用しています。upstartは、-debugカーネルフラグで起動されます。
nzbgetデーモンのカスタムジョブ構成を作成しています。基本的に、このジョブには、ファイルシステムをマウントする開始前スクリプト、ファイルシステムをアンマウントする開始後スクリプト、およびexec nzbget -D
行があります。
問題は、nzbgetデーモンが特権を持たないユーザーとして実行する必要があることです。この機能はすでにnzbgetに含まれています。実際、コンソールから実行するとsudo nzbget -D
、プロセスは非特権ユーザーとして実行されます。しかし、このexec nzbget -D
行でupstartジョブを開始すると、プロセスnzbget -Dがルートとして実行されます。upstart cookbookで述べたように、su -c "nzbget -D"ユーザーとstart-stop-daemonの両方を使用しようとしましたが、どちらもアドバイスどおりのスタンザを期待していませんでした。しかし、両方のコマンドについて、upstartは間違ったPIDを追跡するため、開始プロセスの終了時にメインプロセスが強制終了(upstartログが原因で)されているように見えるため、望まないポストプロセススクリプトを起動します。
=>どうすれば正しくできますか?それはどのようにということであるexec nzbget -D
のに対し、成り上がりのコマンドはrootとして、プロセスの実行を作るsudo nzbget -D
コマンドは、それが非privillegedユーザーとして実行するのですか?