1

SSH を介して切り離された画面を起動する PHP スクリプトがあります。

$ssh->exec("screen -m -d -S ".$user);

その画面にいなくても、その画面でコマンドを実行する必要があります。SSHクライアントでテストしたコードがありますが、phpseclib execコマンドで使用しようとすると機能しません。これは機能するコードです:

screen -S ".$user." -X stuff "cd minecraft/servers/".$user."/;sh start.sh $(printf '\r')"

そして、これはPHPスクリプトにあります:

$ssh->exec("screen -S ".$user." -X stuff \"cd minecraft/servers/".$user."/;sh start.sh $(printf '\r')\"");

コード内の余分な二重引用符をエスケープしようとしました。

PHPでこれを機能させるためにできることはありますか? ありがとう

4

1 に答える 1

1

うーん...

2 つの bash スクリプトを作成してください。1 つ目: fe という名前のユーザー パラメータを使用して画面を作成し、2 つ目: fe という名前のパラメータを使用しrun_screenて SSH クライアントのテスターを作成します。userrun_test

最初のスクリプトを実行します。

$ssh->exec('[full_path]/run_screen ' . $user);

そして2番目:

$ssh->exec('[full_path]/run_test ' . $user);

bash構文はここにありますbash構文

サーバー (fe Apache) のユーザーがスクリプトを実行する権限を持っていることを確認してください。

于 2013-03-24T16:24:28.693 に答える