xterminalによって起動されたバックグラウンドタスクを終了する

xterminalによって起動されたバックグラウンドタスクを終了する

シェル スクリプトで、Xterm -e コマンドを使用して、6 つの X ターミナルで 6 つのプログラムをバックグラウンドで実行しました。PS コマンドを使用すると、バックグラウンドで実行されている 6 つの Xterm プロセスを確認できますが、プログラムは確認できません。Top コマンドを使用すると、プログラムを確認できます。すべての x ターミナルとプログラムを強制終了するクリーンな方法はありますか?

私のスクリプト内の xterminal コマンドは次のとおりです。

xterm -e "script -c \"program\" outputfile" &

もう 1 つの問題は、プログラムの出力をファイルにキャプチャしようとしたのですが、何らかの理由でその一部しかキャプチャできないことです。最後&に を削除すると、すべての出力をキャプチャできますが、プログラムはサーバーとして実行されているため、制御を取り戻すことができません。つまり、サーバーを強制終了しない限り終了しません。

答え1

ps引数/オプションを指定しないと、現在の端末に接続されているプロセスのみが表示されます。新しい端末で実行するものはすべて、その pseudotty を制御端末としてxterm使用します。xterm

通常、 を kill しxtermてその中で実行されているプログラムを終了すれば、問題は解決します。

答え2

次の 3 つのリンクが興味深いかもしれません:

  1. pgrep と pkill- Solaris 専用ページ
  2. ウィンドウプロセス管理に関するこのページU&Lについて
  3. プロセスチェーンドキュメントストアで

関連情報