.shで最後に開いたプロセスを閉じます。

.shで最後に開いたプロセスを閉じます。

私はLinuxを初めて使用し、プロセスを自動的に開始および終了する方法を学びたいと思います。最終的に私はcronを使ってこの/同様のプロセスを実行したいと思います。ここでは、Googleの「チェックイン」をテストしてみてください。

gcheck.sh次のようになります。

#!/bin/bash/
export DISPLAY=:0
firefox --new-window https://google.com

gcheck.shwithに実行権限を追加しましたsudo chmod a+x。私はこれが$$スクリプトのPIDを提供していることを知っていますが、スクリプトのPIDをどのように取得して殺すことができますか?ただFirefoxウィンドウが開いていますか(別のFirefoxウィンドウが開いている場合)?

よろしくお願いします!

答え1

&記号を追加してバックグラウンドで実行し、コードのようにpidofコマンドを使用してpidを取得します。

(firefox --new-window https://google.com &)&> /dev/null
 kill -9 $(pidof "firefox --new-window https://google.com")

答え2

私は最終的に私が望む行動を得ました。

#!/bin/bash/
export DISPLAY=:0
firefox --new-instance -P chemicalwill https://google.com &
PID=$!
sleep 30
kill -15 $PID # kill -9 also works

--new-instance別のプロファイル(ここで)を使用すると、スクリプトがchemicalwillプロセスを終了することを心配することなく、デフォルトのプロファイルで別のプロセスを実行できます。

関連情報