GNU/Linux >> Linux の 問題 >  >> Linux

バックグラウンドで UNIX / Linux コマンド (およびシェル スクリプト) を実行する 5 つの方法

質問: Unix コマンドをフォアグラウンドで実行する方法を知っています。バックグラウンドで Linux コマンドを実行する方法を教えてください。

答え: この記事で説明する 5 つの方法のいずれかを使用して、Linux コマンドまたはシェル スクリプトをバックグラウンドで実行できます。

1. &

を使用してバックグラウンドでコマンドを実行する

以下に示すように、コマンドにアンパサンドを追加することで、コマンド (またはシェル スクリプト) をバックグラウンド ジョブとして実行できます。

$ ./my-shell-script.sh &

詳細については、Bg、Fg、&、Ctrl-Z – Unix バックグラウンド ジョブを管理するための 5 つの例をお読みください。

2. nohup を使用してバックグラウンドでコマンドを実行する

&を使用してバックグラウンドでコマンド (またはシェル スクリプト) を実行した後、セッションからログアウトすると、コマンドが強制終了されます。これを避けるには、以下に示すように nohup を使用する必要があります。

$ nohup ./my-shell-script.sh &

Unix Nohup:Run a Command or Shell-Script Even after You Logout を読んで詳細を理解してください。

3. screen コマンドを使用してコマンドを実行

nohup と &を使用してバックグラウンドでコマンドを実行すると、ログアウトしてもコマンドが実行されます。ただし、同じセッションに再度接続して、画面上で何が起こっているかを正確に確認することはできません。これを行うには、screen コマンドを使用する必要があります。

Linux screen コマンドは、何らかのプロセスを実行しているセッションを切り離し、後で接続する機能を提供します。後でセッションを再接続すると、端末は以前とまったく同じ状態になります。

詳細については、画面コマンドの例:Linux / Unix ターミナルの制御を参照してください。

4. at

を使用してコマンドをバッチ ジョブとして実行する

at コマンドを使用すると、特定の日時にジョブを実行するようにスケジュールできます。たとえば、明日の午前 10 時にバックアップ スクリプトを実行するには、次のようにします。

$ at -f backup.sh 10 am tomorrow

詳細については、9 つ​​の例を使用して at、atq、atrm、batch コマンドを理解するをお読みください。

特定のジョブをバッチ モードで実行するには、特定のオプションを有効にする必要があります。次の記事では、それらについて明確に説明します。

  • Unix のトップ コマンド出力を読み取り可能な形式でファイルにキャプチャする方法
  • バッチ モードの Unix bc コマンド ライン電卓
  • バッチ モードで SSH と SCP を実行する方法 (パスワードレス ログインが有効な場合のみ)

5. watch を使用して連続してコマンドを実行

コマンドを一定間隔で連続して実行するには、次のように watch コマンドを使用します。

$ watch df -h

ウォッチを読む:詳細を理解するには、N 秒ごとに Unix コマンドまたはシェル スクリプトを繰り返します。


Linux
  1. Linuxのwatchコマンドでコマンドとタスクを監視する

  2. Unixでシェルコマンドを編集するためにViキーを使用しますか?

  3. AからZのLinuxコマンド

  1. Linuxで最後に実行されたコマンドを再実行する2つの方法

  2. UNIX/Linuxでシェルスクリプトを実行する4つの方法

  3. WINEで実行中のプログラムからシェルコマンドを実行

  1. Linuxコマンド-概要と例

  2. Linuxコマンド:jobs、bg、およびfg

  3. バックグラウンドおよびフォアグラウンドでのLinuxコマンドの実行