1

setsid コマンドを使用してプロセス (websocket サーバー) を開始します。

setsid python mod_pywebsocket/standalone.py -p 12345

しかし、どうすればそれを止めることができますか? pidを取得して殺す方法がわからないだけで、現在実行されていると確信しています。

4

1 に答える 1

1

このハックを試すことができます:

setsid sh -c 'python mod_pywebsocket/standalone.py -p 12345 > /dev/null & echo $!' |
  while read PID ; do
    echo $PID
    your stuff here
  done

これにより別のシェルが開始され、プロセスがバックグラウンドで開始され、$! を使用してそのジョブ ID が出力されます。オペレーター。

内部のコマンドは出力ストリームを閉じるまで返されないため、ここに PID=$(...) を書き込むことはできません。そのため、最初の行を読み取り、コマンドまで待機しないダミーの「while read X」ループを次に示します。 stdout を閉じるため、そのループ内で必要なことは何でも行う必要があります。出力は 1 行だけなので、一度だけ実行されます。

于 2014-11-30T01:11:16.770 に答える