2

Ubuntuを使用して、Ubuntuサーバー用のシェルスクリプト(bash)を作成します。これにより、Firefoxのインスタンスが開き、その特定のインスタンスがブラウザーで閉じられますか?

Firefoxのインスタンスを開くには、次のように記述できます。

firefox www.example.com

私はそれを読んで、すべてのFirefoxインスタンスを検索し、それらを手動で閉じるには、次のように書くことができます。

ps aux | grep firefox
pidof firefox
kill #process#

しかし、最初に開いたFirefoxの特定のインスタンスインスタンスを検索する方法はありますか?

4

2 に答える 2

2

jobsそのシェルから開始されたすべての実行中のプロセスのIDを取得するために使用できます(スクリプト内など)

#!/bin/bash

firefox www.example.com &
PID=`jobs -p`

kill $PID

help jobsオプションについてはを参照してください。このシェルから開始されたすべてのプロセスがjobs一覧表示されることに注意してください。したがって、このアプローチに従い、複数のプロセスを強制終了する場合は、からの出力に対して追加の解析を実行して、正しいプロセスを見つける必要があります。jobs

于 2012-10-16T08:16:11.220 に答える
1

バックグラウンドでプロセスを開始し、そのpidを覚えておいてください。

#!/bin/bash
firefox www.example.com &
declare -i PID=$!
# blah, blah, blah
kill ${PID}

その間にFirefoxが終了し、他のプロセスに$ {PID}が割り当てられることを心配している場合は、キルを次のようなものに変更して、リスクを減らすことができます。

ps -p ${PID} | fgrep firefox && kill ${PID}
于 2012-10-16T11:50:11.827 に答える