’, Â, � etc... How to fix strange encoding characters in WP or other SQL database
目次:
通常、ターミナルでコマンドを実行するときは、コマンドが完了するまで待ってから別のコマンドを入力する必要があります。 これは、フォアグラウンドまたはフォアグラウンドプロセスでコマンドを実行すると呼ばれます。 プロセスがフォアグラウンドで実行されると、そのプロセスがシェルを占有し、入力デバイスを使用して対話できます。
コマンドの終了に時間がかかり、その間に他のコマンドを実行したい場合はどうなりますか? あなたの処分でいくつかのオプションがあります。 最も明白で簡単なオプションは、新しいシェルセッションを開始し、その中でコマンドを実行することです。 別のオプションは、バックグラウンドでコマンドを実行することです。
バックグラウンドプロセスは、ターミナルから起動され、ユーザーの操作なしでバックグラウンドで実行されるプロセス/コマンドです。
、バックグラウンドプロセスがLinuxであることについて説明します。 バックグラウンドでコマンドを開始する方法と、シェルセッションが閉じられた後にプロセスを実行し続ける方法を示します。
バックグラウンドでLinuxコマンドを実行する
バックグラウンドでコマンドを実行するには、コマンドの最後にアンパサンド記号(
&
)を追加します。
command &
シェルジョブID(角括弧で囲まれている)とプロセスIDが端末に出力されます:
25177
複数のプロセスを同時にバックグラウンドで実行できます。
バックグラウンドプロセスは、コマンドを呼び出した端末にメッセージを書き込み続けます。
stdout
および
stderr
メッセージを抑制するには、次の構文を使用します。
command > /dev/null 2>&1 &
>/dev/null 2>&1
は、
stdout
を
/dev/null
リダイレクトし、
stderr
を
stdout
リダイレクトすることを意味し
/dev/null
。
jobs
ユーティリティを使用して、現在のシェルセッションのすべての停止およびバックグラウンドジョブのステータスを表示します。
jobs -l
出力には、ジョブ番号、プロセスID、ジョブ状態、およびジョブを開始したコマンドが含まれます。
+ 25177 Running ping google.com &
バックグラウンドプロセスをフォアグラウンドにするには、
fg
コマンドを使用します。
fg
fg %1
バックグラウンドプロセスを終了するには、
kill
コマンドに続けてプロセスIDを使用します。
フォアグラウンドプロセスをバックグラウンドに移動する
実行中のフォアグラウンドプロセスをバックグラウンドで移動するには:
-
Ctrl+Z
入力してプロセスを停止します。bgを入力して、停止したプロセスをバックグラウンドに移動します。
シェルの終了後にバックグラウンドプロセスを実行し続ける
接続が切断されるか、シェルセッションからログアウトすると、バックグラウンドプロセスは終了します。 対話型シェルセッションの終了後にプロセスを実行し続けるには、いくつかの方法があります。
1つの方法は、
disown
shell builtinを使用して、シェルのジョブコントロールからジョブを削除することです。
disown
disown %1
jobs -l
コマンドを使用して、アクティブなジョブのテーブルからジョブが削除されたことを確認します。 所有されていないものを含め、実行中のすべてのプロセスをリストするには、
ps aux
コマンドを使用します。
シェルの終了後にプロセスを実行し続ける別の方法は、
nohup
を使用することです。
nohup
コマンドは、引数として指定された別のプログラムを実行し、すべての
SIGHUP
(ハングアップ)シグナルを無視します。
SIGHUP
は、制御端末が閉じられたときにプロセスに送信される信号です。
nohup
コマンドを使用してバックグラウンドでコマンドを実行するには、次のように入力します。
nohup command &
コマンド出力は
nohup.out
ファイルにリダイレクトされます。
nohup: ignoring input and appending output to 'nohup.out'
代替案
複数の対話型セッションを同時に行うことができるプログラムがいくつかあります。
画面
ScreenまたはGNU Screenは、画面セッションを開始し、そのセッション内で任意の数のウィンドウ(仮想端末)を開くことができるターミナルマルチプレクサプログラムです。 Screenで実行されているプロセスは、切断されてもウィンドウが表示されない場合は実行を続けます。
Tmux
Tmuxは、GNU画面の最新の代替手段です。 Tmuxを使用すると、セッションを作成し、そのセッション内で複数のウィンドウを開くこともできます。 Tmuxセッションは永続的です。つまり、端末を閉じても、Tmuxで実行されているプログラムは引き続き実行されます。
結論
バックグラウンドでコマンドを実行するには、コマンドの最後に
&
を含めます。
バックグラウンドでコマンドを実行する場合、別のコマンドを実行する前にコマンドが終了するまで待つ必要はありません。
nohup fg bg jobs disown terminal