server1とserver2という2つのサーバーがあるとしましょう。
サーバー1では、ssh root@server2 "some_command"
some_command
server1でpidを見つける方法は?
ベストアンサー1
ssh user@server2 'echo "$$" | tee some_command.pid && exec some_command'
コードを解釈したシェルプロセスのPIDを出力し、 some_command.pid
ホームディレクトリのファイルにコピーを保存してuser
から同じプロセス(子プロセスではない)に保存するので、同じPIDで実行されますsome_command
。
後でssh user@server2 'cat some_command.pid'
そのPIDを取得できます(そのプロセスを実行しているプロセスがまだ存在するかどうか、some_command
そのプロセスの1つに同じPIDがあるかどうか、シェルを実行したプロセスがsome_command
まだ実行中かどうかsome_command
)。