私はアプリを開いて私の人生を少し簡単にする本当にクールなスクリプトを作成していますが、Firefox(または同様のブラウザ)ブラウザを起動するのに問題があります。 Chromiumでも同様です。
私のスクリプトの機能は次のとおりです。端末ウィンドウを起動し、そのウィンドウでスクリプトを実行する初期スクリプトがあります。スクリプトはセッションとXFCEの開始(bashの新しいxfceターミナルウィンドウ)を介して起動され、正しく機能します。
2番目のスクリプトは次のようになります。
foo=string
grep ';;' ~/sh.sh
read foo
#firefox &>/dev/null &
#disown
for (( i=0; i<${#foo}; i++ )); do
case ${foo:$i:1} in
0) nohup mypaint &>/dev/null & ;;
1) exo-open --launch TerminalEmulator ;;
2) gtk-launch firefox.desktop ;;
3) ~/shsh/lutris.sh ;;
4) nohup /usr/lib/chromium/chromium &>/dev/null & ;;
5) nohup mypaint &>/dev/null & ;;
6) nohup steam &>/dev/null & ;;
esac
done
sleep 5 && kill -1 $PPID
問題は、このスクリプトを使用してFirefoxを起動するときにFirefoxプロセスをシェルから分離するために使用したい方法によっては、2つのうちの1つが発生することです。 Firefox が端末ウィンドウで閉じられるか、端末ウィンドウが次のように閉じられます。オプションカードがクラッシュします(そしてaddblockは機能しなくなりました)。
これまで私が使用したものは次のとおりです。
- と
nohup
の様々な組み合わせ&>/dev/null &
disown
gtk-launch firefox.desktop &
そしてdisown
(firefox &)
(disown
単に入力すると完璧に動作しますが、スクリプトでは異なる動作をします)
興味深いことに、スクリプトを介してターミナルウィンドウを閉じるとfirefox
プロセスの子になりますが、それでも死ぬかタブがクラッシュします。init
したがって、この時点でFirefoxは愚かまたはパズルの一部を見逃しています。
ベストアンサー1
私の考えに解決策を見つけたようです。それがすべてですxfce4-terminal --execute nohup firefox
。新しいターミナルウィンドウを開き、コマンドを実行し、何らかの理由でそのウィンドウを閉じて、デフォルトのシェルが終了してもkill -1
Firefoxは終了せず、タブもクラッシュしません。