50%オフ すべてのプラン、期間限定。から開始 $2.48/mo
残り 8 分
サーバーとOS

Linux での nohup コマンドの動作 – 構文、使用例、例

エイダ・ラブグッド By エイダ・ラブグッド 8 分で読めます 2024 年 7 月 14 日更新
nohupコマンド

Linux 開発者であれば、セッションの一貫性と信頼性の重要性をご存知でしょう。 Linux で長時間実行されるプロセスは、セッションからログアウトした後でも継続する必要があります。幸いなことに、Linux にはこの目的のための機能的なコマンドがあります。の nohupコマンド コマンドをバックグラウンドで中断なく実行し続けることができます。これにより、データの損失を防ぎ、貴重な時間を節約できます。このガイドでは、構文やオプションから実際の例、一般的なエラーのトラブルシューティングまで、Linux nohup コマンドについて知っておくべきことをすべて説明します。

Linux nohup 構文を理解する

nohup コマンドは使いやすく、簡単です。これにより、コマンドやスクリプトをバックグラウンドで実行できるため、ターミナルからログアウトした後も確実に実行を継続できます。使用方法は次のとおりです。

nohup [command] [arguments] &

交換する必要があります [指示] 実行するコマンドまたはスクリプトを入力します。そして [口論] コマンドに必要な引数またはオプションです。の & シンボルはバックグラウンドで実行するコマンドを送信します。例を見てみましょう:

nohup myscript.sh &

この例では、 myscript.sh ターミナルを閉じても実行を続ける bash スクリプトです。出力は、という名前のファイルにリダイレクトされます。 nohup.out 別のパスを指定しない限り、デフォルトでこのパスが使用されます。

nohup オプションの探索

nohup コマンド自体には多くのオプションはありませんが、さまざまなコマンドやリダイレクト手法と組み合わせて効果的に使用する方法を理解すると、パフォーマンスを向上させることができます。まず、nohup コマンドに関する情報を取得する方法を見てみましょう。

nohup –-help 
nohup --version

これら 2 つのコマンドは、ヘルプ メッセージと nohup のバージョンを表示することにより、役立つ情報を提供します。

nohup コマンドを使用してプロセスを実行する

nohup コマンドを使用してプロセスを実行する場合は、前のセクションで説明したのと同じ構造に従うことができます。

nohup [command]

バックグラウンドでプロセスを実行したい場合は、次のように追加します。 & コマンドの最後まで。

nohup コマンドを使用してバックグラウンドで複数のプロセスを実行する

さて、nohup コマンドを使用してバックグラウンドで複数のプロセスを実行したい場合はどうすればよいでしょうか?

nohup bash -c '[command A] && [command B]' &

交換する [コマンドA] そして [コマンドB] バックグラウンドで実行したいコマンドを追加します。最初にシステム パッケージを更新し、次に不要なファイルをクリーンアップし、nohup コマンドを使用してこれを行うと想像してください。

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

この例では、 ノハップ これにより、更新プロセスとクリーンアップ プロセスの両方がバックグラウンドで実行し続けることができます。そのため、ターミナルを開いたままにすることなく、システム メンテナンス タスクが完了します。

カスタム出力のリダイレクト

このプロセスの出力は次の場所にリダイレクトされます。 nohup.out デフォルトでは。しかし、出力を別のパスで受信したい場合はどうすればよいでしょうか?その方法は次のとおりです。

nohup [command] > [/path/to/new/output.txt]

の値を忘れずに置き換えてください [] 希望のコマンドとファイルパスを指定します。

nohup と他のコマンドの組み合わせ

nohup を他のコマンドやパイプと組み合わせて、強力なコマンド チェーンを作成できます。この例を見てみましょう:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

ここで、 探す コマンドはログ ファイルの検索に使用され、 grep 「エラー」という用語を検索するために使用されます。結合された出力は次のようにリダイレクトされます。 エラーログ.txt.

このセクションでは、nohup コマンドの最も一般的なオプションと使用例について説明しました。これらの手順をマスターすると、バックグラウンドで Linux プロセスを実行するために nohup を効果的に使用できるようになります。

一般的なエラーとトラブルシューティング

nohup コマンドの使用は通常は簡単ですが、プロセス中にいくつかの一般的なエラーに直面する可能性があります。これらのエラーを理解し、トラブルシューティングする方法を知っていれば、時間とフラストレーションを節約できます。それでは、これらの一般的なエラーが何なのか、そしてそれらに対処する方法を見てみましょう。

許可が拒否されました

このエラーは、実行しようとしているスクリプトまたはコマンドに実行権限がない場合に発生します。エラーの出力は次のようになります。 nohup: コマンド「myscript.sh」の実行に失敗しました: アクセス許可が拒否されました

この問題を解決するには、スクリプトまたはコマンドに正しい権限があることを確認する必要があります。実行権限を追加するには、 chmod 指示:

chmod +x myscript.sh 
nohup ./myscript.sh &

コマンドが見つかりません

このエラーは、コマンドまたはスクリプトが指定された場所に見つからないか、PATH で使用できない場合に発生します。エラーの出力は次のようになります。 nohup: コマンド「myscript.sh」の実行に失敗しました: そのようなファイルまたはディレクトリはありません

このエラーを解決するには、コマンドまたはスクリプトが存在し、正しいディレクトリに存在することを確認する必要があります。スクリプトへの絶対パスを指定する必要がある場合があります。

nohup /path/to/myscript.sh &

また、コマンドがインストールされており、PATH で使用できることを確認してください。

出力なし

場合によっては、ターミナルまたは出力ファイルに出力がないことに気づく場合があります。コマンドが出力を生成してもそれが表示されない場合は、デフォルト ファイル以外のパスにリダイレクトされているか、ファイルのアクセス許可に問題がある可能性があります。この問題を解決するには、出力ファイルを明示的に指定して、正しくリダイレ​​クトされるようにする必要があります。

nohup myscript.sh > output.log 2>&1 &

例として、このコマンドは標準出力と標準エラーの両方を という名前のファイルにリダイレクトします。 output.log.

スクリプトがバックグラウンドで実行されていない

場合によっては、スクリプトまたはコマンドが実行されているように見えても、バックグラウンドでは実行されていないことがあります。理由は通常は単純です。を追加するのを忘れている可能性があります & バックグラウンドで実行するには、コマンドの最後に記号を付けます。解決策も簡単です。それを追加したことを確認するだけで準備完了です。

プロセスがハングしているか応答しない

nohup で開始されたプロセスがハングしたり、応答しなくなる可能性があります。これは、プロセスが入力を待機している場合、またはアクセスしようとしているリソースに問題がある場合に発生する可能性があります。この問題には 2 つの解決策があります。

  • 必要な入力を確認します。 コマンドが対話型入力を必要としないことを確認してください。
  • リソースの問題: コマンドが必要なリソース (ファイル、ネットワークなど) にアクセスできることを確認します。

nohup.out を上書きする

nohup コマンドを使用してバックグラウンドで複数のプロセスを実行している場合、意図せずに nohup.out ファイル。この問題を回避するには、プロセスごとに特定のパスを選択します。このようにして、各プロセスには固有の出力ファイルがあり、デフォルトのパスは上書きされません。

一般的な nohup エラーとその解決策について学ぶことで、問題なく nohup コマンドを使用できるようになります。

結論

nohup コマンドは、ログアウト後もプロセスが確実に実行されるようにするため、バックグラウンドでプロセスを実行する必要がある Linux ユーザーにとって優れたツールです。このガイドでは、基本的な構文を説明し、さまざまなオプションを検討し、一般的なエラーとトラブルシューティングのヒントについて説明しました。 nohup コマンドをマスターすると、長時間実行されるタスクを効率的に管理できるようになり、生産性とシステム管理スキルが向上します。

Linux エクスペリエンスを最大限に活用したいと考えている Linux 開発者は、信頼できる Linux へのアップグレードを検討してください。 Linux VPS。当社のクラウドベースの VPS サービスは、24 時間 365 日のサポートと 99.95% の稼働率保証を提供します。つまり、アプリケーションは常にスムーズに実行され、いつでもサポートを受けることができます。堅牢なインフラストラクチャと信頼性の高いリソースを備えた当社の VPS は、Linux プログラマーの要求を満たすように設計されています。さらに、好みの Linux ディストリビューションをプリインストールできるため、セットアップが迅速かつ簡単になります。必要なパワーと柔軟性を提供する VPS を使用して、Linux プロジェクトを次のレベルに引き上げます。

よくある質問

違いは何ですか ノハップ そして &?

ノハップ ユーザーがログアウトしたときにプロセスが終了するのを防ぎます。 & バックグラウンドでプロセスを実行します。使用する ノハップ ログアウト後もプロセスが継続することを保証し、それを組み合わせる & バックグラウンドでの実行を許可します。

nohup が使用される理由

ノハップ ユーザーがログアウトした後、またはターミナルを閉じた後でも、コマンドまたはスクリプトが実行を継続することを確認するために使用されます。これは、ユーザーの介入なしにアクティブな状態を維持する必要がある長時間実行プロセスにとって不可欠です。

nohup出力ファイルとは何ですか?

nohup.out file は、nohup がコマンドの標準出力と標準エラーをリダイレクトするデフォルトの出力ファイルです。他の出力ファイルが指定されていない場合、コマンドの出力は次の場所に保存されます。 nohup.out 現在のディレクトリにあります。

共有

詳細はブログから

読み続けてください。

Cosmos Cloud で実行できる最高のセルフホスト アプリ Cosmos ダッシュボードの周囲にアプリ パネルが配置されたカバー画像。
サーバーとOS

Cosmos Cloud で実行できる最高のセルフホスト アプリ: ファイル、メディア、パスワード、オートメーションなど!

おそらく、Cosmos Cloud を設定済みで、どのアプリがそれによく適合するかを知りたいと考えているかもしれません。あるいは、Cosmos をまだ決めておらず、それが自分のワークフローにどれだけ適合するかを確認したいだけかもしれません。

ニック・シルバーニック・シルバー 16 分で読めます
Docker アプリの管理のための Porttainer と Cosmos Cloud では、ハイブリッド セットアップの図とネオン運用とアクセス ブロックが取り上げられています。
サーバーとOS

Porttainer 対 Cosmos Cloud: Docker アプリ管理に最適

すでに Docker を知っていて、成長するアプリ スタックを実行するためのよりクリーンな方法が必要な場合は、Porttainer と Cosmos Cloud に対する簡単な答えをここに示します。ポーテイナーはディレックにとってより強力なピックだ

ニック・シルバーニック・シルバー 14 分で読めます
Cosmos Cloud、CasaOS、Umbrel のフィーチャー グラフィックは、1 つの抽象的なクラウド ネットワーク世界内の 3 つのセルフホスト パスを示しています。
サーバーとOS

Cosmos Cloud vs CasaOS vs Umbrel: どのセルフホスト プラットフォームがあなたのセットアップに適合しますか?

簡単に言うと、CasaOS は依然として最も簡単に始めることができ、Umbrel は最もすっきりと厳選された感触があり、Doma をより厳密に制御したい場合は Cosmos Cloud が合理的です。

ニック・シルバーニック・シルバー 11 分で読めます

導入する準備はできていますか? 月額 $2.48 から。

2008 年以降の独立したクラウド。AMD EPYC、NVMe、40 Gbps。 14日間の返金。