こんにちは
スクリプトのpidをsshで実行する必要があります。 sshがバックグラウンドでスクリプトを実行し、そのpidを取得
ssh some.host './script &' #get the pid of it
私がこれまでにしようとしていたいくつかのコード:
ssh some.host './script & ; echo $!'
nohup ssh some.host '(./script &); echo $! > thePID'; ssh some.host 'cat thePID'
どれ暗示?
なし
あなたの第二のアプローチの大きな問題は、方法によって、それは '$を設定するということです! 'を実行するだけですが、サブシェルが終了した後に、そのサブシェルの* parent *に' echo $! 'を実行しようとしています。 –
ところで、 'nohup'は自分でできないことは絶対にありません。 'ssh some.host './script/dev/null 2>&1&echo" $! "; 'nohup.out'を作成するのと同じように、無駄な/有害なことなしに、リモートの' nohup'がやる*有用な*すべてのものを行います。stdout/stderrを記録したい場合は、ファイル名リダイレクションのために '/ dev/null'以外の宛先を指定して制御します)。 –
ところで、これを使ってリモートサービスを開始しようとするなら、適切なプロセス監視システム、runit、daemontools、upstart、systemdなどを使用する方が良いでしょう。何かがサービスとして定義されると、それらを起動するコマンド、停止するコマンド、ステータスを確認するコマンドなどがあります。 –