Linuxサーバー上で、screenを使ってバックグラウンドでプログラムを常時稼働させています。ターミナルを立ち上げてアタッチ操作(screen -r)することで、このプログラムへのキーボードからのコマンド入力が可能です。(screenコマンドの機能です)


ターミナルを立ち上げるかわりに、このコマンド操作をwebブラウザ上から同じサーバー上のPHPを稼働させて実行したいのですが、どのようにすればPHPから、このバックグラウンド稼働しているプログラムにコマンドを渡せるでしょうか? >STOP のようにコマンドを渡したいです。




回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/09/05 07:29:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:takaz No.1

回答回数9ベストアンサー獲得回数3

ポイント300pt

screen は、-X 引数で、screenコマンドを実行させることができます。
そして、stuff コマンドで、指定した文字列を screen 下で実行中のプログラムに対する入力に送り込むことができます。

ですので、例えば
$ screen -X stuff 'ls^M'
(^Mは、Ctrl-V Ctrl-Mで入力)

で、screen 下のプログラムに「ls <enter>」という入力を送り込むことができます。
これをPHPから呼び出すプログラムとして指定すればよいでしょう。

id:tom80

ありがとうございます。まさに欲しかった情報でした。その後、Web入力(=Apacheユーザー)と、ユーザーを合わせるのに苦労しましたが、無事稼働しました。

2012/09/05 07:26:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません