web-dev-qa-db-ja.com

ターミナル経由でfirefoxを開いた後に制御を取り戻す

私は端末を使用してFirefoxを開いています

firefox

しかし、このコマンドの後に他のコマンドを入力することはできません。入力した後、端末の制御を取り戻すことができません。

そうするための唯一の方法は(私にとって)押すことです CTRL + Z しかし、その後、Firefoxはフリーズします。

私はLubuntuを使用していますが、まったく新しいわけではありませんが、Windowsほど使用していません。

6
Yassin Hajaj

明らかな方法は、次のように、コマンドの最後に&記号を追加して、このようなアプリケーションをバックグラウンドで起動することです。

firefox &

Firefoxはシェルとターミナルウィンドウの子プロセスになっていることに注意してください。それらを終了すると、Firefoxがまだ実行中の場合、Firefoxは強制終了されます。これを回避し、ターミナルを閉じた後でも実行を継続するには、disownする必要があります。

firefox & disown

firefox(またはその他のアプリケーション)をフォアグラウンドで既に開始している場合でも、バックグラウンドに送信できます。端末に焦点を合わせてヒット Ctrl+Z。これにより、フォアグラウンドアプリケーションがフリーズし、シェルに戻ります。すぐにコマンドbgを実行して、フリーズしたプロセスをバックグラウンドに送信し、実行を継続できます。

20
Byte Commander

入力できます

firefox &

firefoxにバックグラウンドで実行するように指示すると、ターミナルセッションを使い続けることができます...

編集:そして、@ ByteCommanderはこれを私よりもずっと徹底的に説明してくれました。

ただし、Firefox(またはバックグラウンドで実行するように指示された別のプロセス)は、プロセスがバックグラウンドで実行され、disownedになっている場合でも、警告などを端末に出力することがあります。それが望ましくない場合は、stdoutとstderrをリダイレクトすることで、静かであると伝えることができます。

firefox >/dev/null 2>&1 &

必要な場合はdisown。これにより、子プロセスのPIDが取得され、その出力がデータNirvana(@Videonauthのフレーズ)に直接送信されるため、中断されないという至福の確実性を維持できます。プロセスを開始するときにこれを行う必要があることに注意してください。後で追加することはできません。

6
Zanna