LoginSignup
1
4

More than 3 years have passed since last update.

PHPでSSHをバックグラウンドで実行、停止

Last updated at Posted at 2019-07-23

はじめに

PHPで踏み台通してMySQLに接続する際にやったこと。
PECLだと専用関数あるらしいが、ない環境だったためシェルつかってバックグラウンドでやることに。

バックグラウンド実行

変数に格納しているのは、停止のときに使うためです。

php
$cmd = "ssh -f -i /tmp/key.txt ssh_user@host_name";
exec($cmd);

オプション

  • [ -f ] バックグランドで実行する
  • [ -i ] 秘密鍵を使用する

バックグラウンドの停止

さっきのコマンドを元にPIDを取得して、killする。

php
//開始時に使ったコマンドを元に調べる
$_cmd = "ps aux | grep '[0-9] ".$cmd."' | awk '{print $2}'";
exec( $_cmd ,$output ,$return_var );

//$ouput[0]にPID入っているのでkill
exec('kill '.$output[0]);
1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4