Linux プロセスについて知っておくべきこと
プロセスは実行中のプログラムを指し、実行中のプログラムのインスタンスです。これは、ファイル、他のプログラム、またはシステム ユーザーからの入力から読み取られたプログラム命令とデータで構成されます。
次のガイドでは、プロセスの基本概念を徐々に理解し、特定のコマンドを使用して Linux システムのプロセスを管理する方法を簡単に紹介します。
プロセスの種類
Linux システムには、フォアグラウンド プロセスとバックグラウンド プロセスという 2 つの主なタイプのプロセスがあります。
フォアグラウンド プロセスは、ユーザーと直接対話するプロセスを指します。通常、ユーザーが端末上で実行するコマンドはフォアグラウンド プロセスとして実行されます。これらのプロセスは端末を占有し、出力をユーザーに直接送信します。
バックグラウンド プロセスは、バックグラウンドで実行され、端末を占有せず、ユーザーと直接対話しないプロセスです。バックグラウンド プロセスは通常、ユーザーが影響を受けることなく端末上で他の操作を実行できるようにする、長時間実行されるタスクやサービスを実行するために使用されます。
特定のコマンドを使用すると、実行中のプロセスの表示、新しいプロセスの開始、プロセスの一時停止、再開、終了など、これらのプロセスを管理および制御できます。これらのコマンドは、システム内のプロセスを効果的に管理および監視するのに役立ちます。
リーリーデーモンとは
これは、システムの起動時に開始され、サービスとして実行される特別なタイプのバックグラウンド プロセスであり、終了することはありません。これらはシステム タスクとして自発的に開始されます (サービスとして実行されます)。ただし、ユーザーは init プロセスを通じて制御できます (RHEL&CentOs7 以降、systemd が init プロセスに置き換わりました。詳細については、Linux の学習方法に関する関連コンテンツを参照してください)。
Linux でのプロセスの作成
Linux でプロセスを作成するには 3 つの方法があります:
fork() メソッド
fork() 関数を使用して、親プロセスに基づいてプロセスをコピーします。その PID 番号は親プロセスの PID 番号とは異なります。 Linux環境では、fork()はコピーライトで実装されます 新しい子プロセスの環境は親プロセスと同じです メモリのみが親プロセスと異なります 残りは親プロセスと共有されます親プロセスまたは子プロセスの後、1 つのコピーを再生成する前にのみ変更できます。
system() メソッド
system() 関数は、/bin/sh –c コマンドを呼び出して特定のコマンドを実行し、そのコマンドが実行されるまで現在のプロセスの実行をブロックします。新しい子プロセスには新しい PID が割り当てられます。
exec() メソッド
exec() メソッドにはいくつかの異なる関数があります。前の fork() 関数や system() 関数とは異なり、exec() メソッドは元のプロセスを新しいプロセスに置き換え、システムは新しいプロセスから実行されます。プロセスの PID 値は、元のプロセスの PID 値と同じになります。
Linux はどのようにプロセスを識別するのでしょうか?
Linux はマルチユーザー システムであるため、さまざまなユーザーがシステム上でさまざまなプログラムを実行できるため、カーネルは実行中のプログラムの各インスタンスを一意に識別する必要があります。
プログラムは、そのプロセス ID (PID) とその親プロセスのプロセス ID (PPID) によって識別されるため、プロセスは次のように分類できます。 リーリー
初期化プロセス
init プロセスは、システム内のすべてのプロセスの親プロセスです。これは、Linux システムの起動後に実行される最初のプログラムであり、システム上の他のすべてのプロセスを管理します。これはカーネル自体によって開始されるため、理論的には親プロセスがありません。init プロセスのプロセス ID は常に 1 です。これはすべての子プロセスの親プロセスです。 (ルート ディレクトリとサブディレクトリの関係と同様に、すべてはヒールから始まり、すべては init プロセスから始まります)。
プロセス ID の検索
pidof コマンドを使用して、プロセスのプロセス ID を見つけることができます:
# pidof systemd # pidof top # pidof httpd

要查找当前 shell 的进程 ID 以及它父进程的进程 ID,可以运行:
$ echo $$ $ echo $PPID

在 Linux 中启动进程
每次你运行一个命令或程序(例如 cloudcmd – CloudCommander),它就会在系统中启动一个进程。你可以按照下面的方式启动一个前台(交互式)进程,它会被连接到终端,用户可以发送输入给它:
# cloudcmd

Linux 后台任务
要在后台(非交互式)启动一个进程,使用 & 符号,此时,该进程不会从用户中读取输入,直到它被移到前台。
# cloudcmd & # jobs

你也可以使用 Ctrl + Z 暂停执行一个程序并把它发送到后台,它会给进程发送 SIGSTOP 信号,从而暂停它的执行;它就会变为空闲:
# tar -cf backup.tar /backups/* ### 按下 Ctrl+Z # jobs
要在后台继续运行上面被暂停的命令,使用 bg 命令:
# bg
要把后台进程发送到前台,使用 fg 命令以及任务的 ID,类似:
# jobs # fg %1

Linux 中进程的状态
在执行过程中,取决于它的环境一个进程会从一个状态转变到另一个状态。在 Linux 中,一个进程有下面的可能状态:
Running - 此时它正在运行(它是系统中的当前进程)或准备运行(它正在等待分配 CPU 单元)。 Waiting - 在这个状态,进程正在等待某个事件的发生或者系统资源。另外,内核也会区分两种不同类型的等待进程;可中断等待进程interruptible waiting processes - 可以被信号中断,以及不可中断等待进程uninterruptible waiting processes- 正在等待硬件条件,不能被任何事件/信号中断。 Stopped - 在这个状态,进程已经被停止了,通常是由于收到了一个信号。例如,正在被调试的进程。 Zombie - 该进程已经死亡,它已经停止了但是进程表process table中仍然有它的条目。
如何在 Linux 中查看活跃进程
有很多 Linux 工具可以用于查看/列出系统中正在运行的进程,两个传统众所周知的是 ps 和 top 命令:
1. ps 命令
它显示被选中的系统中活跃进程的信息,如下图所示:
# ps # ps -e | head

2. top – 系统监控工具
top 是一个强大的工具,它能给你提供 运行系统的动态实时视图,如下面截图所示:
# top

3. glances – 系统监控工具
glances 是一个相对比较新的系统监控工具,它有一些比较高级的功能:
# glances

如何在 Linux 中控制进程
Linux 也有一些命令用于控制进程,例如 kill、pkill、pgrep 和 killall,下面是一些如何使用它们的基本事例:
$ pgrep -u tecmint top $ kill 2308 $ pgrep -u tecmint top $ pgrep -u tecmint glances $ pkill glances $ pgrep -u tecmint glances

给进程发送信号
Linux 中控制进程的基本方法是给它们发送信号。你可以发送很多信号给一个进程,运行下面的命令可以查看所有信号:
$ kill -l

要给一个进程发送信号,可以使用我们之前提到的 kill、pkill 或 pgrep 命令。但只有被编程为能识别这些信号时程序才能响应这些信号。
大部分信号都是系统内部使用,或者给程序员编写代码时使用。下面是一些对系统用户非常有用的信号:
SIGHUP 1 - 当控制它的终端被被关闭时给进程发送该信号。 SIGINT 2 - 当用户使用 Ctrl+C 中断进程时控制它的终端给进程发送这个信号。 SIGQUIT 3 - 当用户发送退出信号 Ctrl+D 时给进程发送该信号。 SIGKILL 9 - 这个信号会马上中断(杀死)进程,进程不会进行清理操作。 SIGTERM 15 - 这是一个程序终止信号(kill 默认发送这个信号)。 SIGTSTP 20 - 它的控制终端发送这个信号给进程要求它停止(终端停止);通过用户按 Ctrl+Z 触发。
下面是当 Firefox 应用程序僵死时通过它的 PID 杀死它的 kill 命令事例:
$ pidof firefox $ kill 9 2687 或 $ kill -KILL 2687 或 $ kill -SIGKILL 2687
使用它的名称杀死应用,可以像下面这样使用 pkill 或 killall:
$ pkill firefox $ killall firefox
更改 Linux 进程优先级
在 Linux 系统中,所有活跃进程都有一个优先级以及 nice 值。有比点优先级进程有更高优先级的进程一般会获得更多的 CPU 时间。
但是,有 root 权限的系统用户可以使用 nice 和 renice 命令影响(更改)优先级。
在 top 命令的输出中, NI 显示了进程的 nice 值:
$ top

使用 nice 命令为一个进程设置 nice 值。记住一个普通用户可以给他拥有的进程设置 0 到 20 的 nice 值。
只有 root 用户可以使用负的 nice 值。
要重新设置一个进程的优先级,像下面这样使用 renice 命令:
$ renice +8 2687 $ renice +8 2103
以上がLinux プロセスについて知っておくべきことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











DeepSeekは、Webバージョンと公式Webサイトの2つのアクセス方法を提供する強力なインテリジェント検索および分析ツールです。 Webバージョンは便利で効率的であり、公式ウェブサイトは包括的な製品情報、ダウンロードリソース、サポートサービスを提供できます。個人であろうと企業ユーザーであろうと、DeepSeekを通じて大規模なデータを簡単に取得および分析して、仕事の効率を向上させ、意思決定を支援し、イノベーションを促進することができます。

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

Bitgetは、スポット取引、契約取引、デリバティブなど、さまざまな取引サービスを提供する暗号通貨交換です。 2018年に設立されたこのExchangeは、シンガポールに本社を置き、安全で信頼性の高い取引プラットフォームをユーザーに提供することに取り組んでいます。 Bitgetは、BTC/USDT、ETH/USDT、XRP/USDTなど、さまざまな取引ペアを提供しています。さらに、この取引所はセキュリティと流動性について評判があり、プレミアム注文タイプ、レバレッジド取引、24時間年中無休のカスタマーサポートなど、さまざまな機能を提供します。

世界をリードするデジタル資産交換であるOuyi Okxは、安全で便利な取引体験を提供するために、公式のインストールパッケージを開始しました。 OUYIのOKXインストールパッケージは、ブラウザに直接インストールでき、ユーザー向けの安定した効率的な取引プラットフォームを作成できます。インストールプロセスは、簡単で理解しやすいです。

Gate.ioは、インストールパッケージをダウンロードしてデバイスにインストールすることで使用できる人気のある暗号通貨交換です。インストールパッケージを取得する手順は次のとおりです。Gate.ioの公式Webサイトにアクセスし、「ダウンロード」をクリックし、対応するオペレーティングシステム(Windows、Mac、またはLinux)を選択し、インストールパッケージをコンピューターにダウンロードします。スムーズなインストールを確保するために、インストール中に一時的にウイルス対策ソフトウェアまたはファイアウォールを一時的に無効にすることをお勧めします。完了後、ユーザーはGATE.IOアカウントを作成して使用を開始する必要があります。

OKXとしても知られるOUYIは、世界をリードする暗号通貨取引プラットフォームです。この記事では、OUYIの公式インストールパッケージのダウンロードポータルを提供します。これにより、ユーザーはさまざまなデバイスにOUYIクライアントをインストールすることが容易になります。このインストールパッケージは、Windows、Mac、Android、およびiOSシステムをサポートします。インストールが完了した後、ユーザーはOUYIアカウントに登録またはログインし、暗号通貨の取引を開始し、プラットフォームが提供するその他のサービスを楽しむことができます。

Gate.ioは、広範なトークン選択、低い取引手数料、ユーザーフレンドリーなインターフェイスで知られる高く評価されている暗号通貨取引プラットフォームです。高度なセキュリティ機能と優れたカスタマーサービスにより、Gate.ioは、信頼できる便利な暗号通貨取引環境をトレーダーに提供します。 gate.ioに参加する場合は、リンクをクリックして公式登録インストールパッケージをダウンロードして、暗号通貨取引の旅を開始してください。

このチュートリアルは、既存のApacheサーバーに沿って、潜在的にubuntuシステムにnginxとphpmyAdminをインストールおよび構成することをガイドします。 Nginxのセットアップをカバーし、Apacheとの潜在的なポートの競合を解決し、Mariadbをインストールします(
