目次
プロセスの種類" >プロセスの種類
デーモンとは" >デーモンとは
Linux でのプロセスの作成" >Linux でのプロセスの作成
fork() メソッド" >fork() メソッド
system() メソッド" >system() メソッド
exec() メソッド" >exec() メソッド
Linux はどのようにプロセスを識別するのでしょうか? " >Linux はどのようにプロセスを識別するのでしょうか?
在 Linux 中启动进程" >在 Linux 中启动进程
Linux 后台任务" >Linux 后台任务
Linux 中进程的状态" >Linux 中进程的状态
如何在 Linux 中查看活跃进程" >如何在 Linux 中查看活跃进程
如何在 Linux 中控制进程" >如何在 Linux 中控制进程
给进程发送信号" >给进程发送信号
更改 Linux 进程优先级" >更改 Linux 进程优先级
ホームページ システムチュートリアル Linux Linux プロセスについて知っておくべきこと

Linux プロセスについて知っておくべきこと

Feb 15, 2024 pm 03:00 PM
linux Linuxチュートリアル Linuxシステム Linuxコマンド シェルスクリプト Linux を始める Linux学習

プロセスは実行中のプログラムを指し、実行中のプログラムのインスタンスです。これは、ファイル、他のプログラム、またはシステム ユーザーからの入力から読み取られたプログラム命令とデータで構成されます。

次のガイドでは、プロセスの基本概念を徐々に理解し、特定のコマンドを使用して Linux システムのプロセスを管理する方法を簡単に紹介します。

プロセスの種類

Linux システムには、フォアグラウンド プロセスとバックグラウンド プロセスという 2 つの主なタイプのプロセスがあります。

フォアグラウンド プロセスは、ユーザーと直接対話するプロセスを指します。通常、ユーザーが端末上で実行するコマンドはフォアグラウンド プロセスとして実行されます。これらのプロセスは端末を占有し、出力をユーザーに直接送信します。

バックグラウンド プロセスは、バックグラウンドで実行され、端末を占有せず、ユーザーと直接対話しないプロセスです。バックグラウンド プロセスは通常、ユーザーが影響を受けることなく端末上で他の操作を実行できるようにする、長時間実行されるタスクやサービスを実行するために使用されます。

特定のコマンドを使用すると、実行中のプロセスの表示、新しいプロセスの開始、プロセスの一時停止、再開、終了など、これらのプロセスを管理および制御できます。これらのコマンドは、システム内のプロセスを効果的に管理および監視するのに役立ちます。

リーリー

デーモンとは

これは、システムの起動時に開始され、サービスとして実行される特別なタイプのバックグラウンド プロセスであり、終了することはありません。これらはシステム タスクとして自発的に開始されます (サービスとして実行されます)。ただし、ユーザーは init プロセスを通じて制御できます (RHEL&CentOs7 以降、systemd が init プロセスに置き換わりました。詳細については、Linux の学習方法に関する関連コンテンツを参照してください)。
关于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
ログイン後にコピー
关于Linux 进程你要知道的事

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

$ echo $$
$ echo $PPID
ログイン後にコピー
关于Linux 进程你要知道的事

在 Linux 中启动进程

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

# cloudcmd
ログイン後にコピー
关于Linux 进程你要知道的事

Linux 后台任务

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

# cloudcmd &
# jobs
ログイン後にコピー
关于Linux 进程你要知道的事

你也可以使用 Ctrl + Z 暂停执行一个程序并把它发送到后台,它会给进程发送 SIGSTOP 信号,从而暂停它的执行;它就会变为空闲:

# tar -cf backup.tar /backups/*  ### 按下 Ctrl+Z
# jobs
ログイン後にコピー

要在后台继续运行上面被暂停的命令,使用 bg 命令:

# bg
ログイン後にコピー

要把后台进程发送到前台,使用 fg 命令以及任务的 ID,类似:

# jobs
# fg %1
ログイン後にコピー
关于Linux 进程你要知道的事

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 
ログイン後にコピー
关于Linux 进程你要知道的事

2. top – 系统监控工具

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

# top
ログイン後にコピー
关于Linux 进程你要知道的事

3. glances – 系统监控工具

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

# glances
ログイン後にコピー
关于Linux 进程你要知道的事

如何在 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 进程你要知道的事

给进程发送信号

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

$ kill -l
ログイン後にコピー
关于Linux 进程你要知道的事

要给一个进程发送信号,可以使用我们之前提到的 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
ログイン後にコピー
关于Linux 进程你要知道的事

使用 nice 命令为一个进程设置 nice 值。记住一个普通用户可以给他拥有的进程设置 0 到 20 的 nice 值。

只有 root 用户可以使用负的 nice 值。

要重新设置一个进程的优先级,像下面这样使用 renice 命令:

$ renice +8  2687
 
$ renice +8  2103
ログイン後にコピー

以上がLinux プロセスについて知っておくべきことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Feb 19, 2025 pm 04:54 PM

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

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

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

Bitget公式ウェブサイトのインストール(2025初心者ガイド) Bitget公式ウェブサイトのインストール(2025初心者ガイド) Feb 21, 2025 pm 08:42 PM

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

OUYI OKXインストールパッケージが直接含まれています OUYI OKXインストールパッケージが直接含まれています Feb 21, 2025 pm 08:00 PM

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

gate.ioインストールパッケージを無料で入手してください gate.ioインストールパッケージを無料で入手してください Feb 21, 2025 pm 08:21 PM

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

OUYI Exchangeダウンロード公式ポータル OUYI Exchangeダウンロード公式ポータル Feb 21, 2025 pm 07:51 PM

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

gate.io公式ウェブサイト登録インストールパッケージリンク gate.io公式ウェブサイト登録インストールパッケージリンク Feb 21, 2025 pm 08:15 PM

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

ubuntuにnginxでphpmyadminをインストールする方法は? ubuntuにnginxでphpmyadminをインストールする方法は? Feb 07, 2025 am 11:12 AM

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

See all articles