プロセスおよびスケジュールされたタスク管理
1.手順とプロセスの関係
1.1手順
- ハードディスク、CDなどに保存されている実行可能なコードとデータ。
- ファイルに静的に保存されたコード
1.2プロセス
- CPUとメモリで実行されているプログラムコード
- 動的に実行されるコード
- 親と子のプロセス-
各プログラムは1つ以上のプロセスを作成できます
1.3psコマンド-プロセス情報の表示
1.3.1静的プロセス統計の表示
ps to
a:
他のユーザーのプロセスを含む、terminal_上のすべてのプロセスを表示します
。u:
すべての端末のプロセスを表示します
。x:すべての端末
のプロセス
を表示します。上の図の各列の説明:
- USER:
プロセスのユーザー - PID:
プロセスのID - %CPU:
プロセスが占めるCPUの割合 - %MEM:
占有されているメモリの割合 - VSZ:
プロセスによって使用される仮想メモリの量(KB) - RSS:
プロセスが占有する物理メモリの量(KB) - TTY:
プロセスを開始した端末の名前。端末から開始されていないプロセスは?として表示されます。 - STAT:
トリップのステータス(D:中断できないスリープステータス、R:実行中のステータス、S:スリープ状態で、目覚めることができます。T:停止ステータス、バックグラウンドで一時停止されているか、プロセスが追跡およびデバッグステータスになっています。z:ゾンビ工場プロセス、プロセスは終了しましたが、一部のプログラムはまだメモリ内にあります) - START:
プロセスは開始時刻にトリガーされました - 時間:
プロセスが実際にCPUを使用して実行する時間 - コマンド:プロセス
の開始コマンド
(ゾンビプロセス:プロセスは終了しますが、プロセスの親プロセスが最初に終了した場合、各プロセスが終了するとシステムが現在のプロセスをスキャンするため、プロセスはゾンビプロセスにはなりません。システムで実行されているすべてのプロセスは、終了したばかりのプロセスの子プロセスであるかどうかを確認します。そうである場合、Initが引き継ぎ、その親プロセスになります。子プロセスが終了すると、initは占有されているプロセスを再利用します。関連リソース。
ただし、子プロセスが親プロセスの前に終了し、親プロセスが子プロセスを再利用せず、子プロセスが占有していたリソースを解放しない場合、子プロセスはゾンビプロセスになります。)
1.3.2静的プロセス統計の表示
ps -elf
-e:
システム内のすべてのプロセス情報を表示します
-l:
長い形式を使用してプロセス情報を表示します
-f:
完全な形式を使用してプロセス情報を表示します
上図の各列の説明:
- F:
カーネルによってプロセスに割り当てられたシステムタグ - S:
プロセスのステータス - UID:
これらのプロセスを開始したユーザー - PID:
プロセスのプロセスID - PPID:
親プロセスのプロセス番号(プロセスが別のプロセスによって開始された場合) - C:
プロセスのライフサイクルにおけるCPU使用率 - PRI:
プロセスの優先度(数値が大きいほど、優先度は低くなります) - NI:
中程度の値は、優先順位の決定に参加するために使用されます - ADDR:
プロセスのメモリアドレス - SZ:
プロセスがスワップアウトされる場合、必要なスワップスペースのおおよそのサイズ - WCHAN:
プロセスがスリープ状態の場合、スリープ状態のシステム機能の名前を表示します - STIME:
プロセスが開始されたシステム時間 - TTY:
プロセス開始時の端末デバイス - 時間:
プロセスの実行に必要な累積CPU時間 - CMD:
プロセスの開始コマンド
1.4トップコマンド-プロセス情報の表示
topコマンドはpsコマンドの反対です。topコマンドは動的プロセス情報を表示できます。
最初の行はタスクキュー情報です。
- 14:57:11-システム時間
- アップ4:23-システムが実行されている時間の長さ
- 4ユーザー-現在ログインしているユーザーの数
- 負荷平均:0.00 0.01 0.05-システム負荷、つまり、システムによって単位時間に処理されたタスクの数。最後の3つの数値は、1分、5分、および15分から現在までの平均値です。
プロセス情報の2行目:
- タスク-プロセスの総数
- 実行中-実行中のプロセスの数
- 睡眠-睡眠プロセスの数
- 停止-停止したプロセスの数
- ゾンビ-ゾンビプロセスの数
CPU情報の3行目:
- 私たち-ユーザーが占有
- sy-kernelの職業
- ni-優先スケジュールの職業
- id(最も重要)-アイドルCPU、アイドルCPUの割合を理解するには、主に%idの部分を参照してください
- wa-占領されるのを待っているl / O
- ハイハードウェア割り込みの職業
- si-ソフトウェア割り込みの職業
- st-仮想化の占有率
メモリ情報の4行目:
- 合計-合計メモリスペース
- フリー-フリースペース
- 使用済み-使用済みメモリ
- バフ/キャッシュ-物理メモリとスワップメモリのバッファの合計
情報交換スペースの5行目:
- 合計-合計交換スペース
- 無料-無料のスワップスペース
- 使用済み-使用済みスワップメモリ
- avail Mem-利用可能な物理スペース。
プロセス情報領域の各列の説明: - PID:
プロセスID - USER:
プロセス所有者のユーザー名 - PR:
優先 - NI:
適度な程度の値。負の値は優先度が高いことを意味し、正の値は優先度が低いことを意味します - VIRT:
プロセスで使用される仮想メモリの合計量(kb) - RES:
プロセスで使用される物理メモリサイズ(kb) - SHR:
共有メモリサイズ、単位kb - S:
プロセスステータス - %CPU:
最後の更新から現在までに占有されたCPU時間の割合 - %MEM:
プロセスによって使用された物理メモリのパーセンテージ - TIME +:
プロセスで使用された合計CPU時間(1/100秒単位) - コマンド:
コマンド名/コマンドライン
一般的に使用される上位のコマンド:
P键:根据CPU使用百分比大小进行排序
M键:根据驻留内存大小进行排序
N键:根据启动时间进行排序
c键:切换显示命令名称和完整命令行
h键:可以获得top程序的在线帮助信息
k键:根据提示输入指定进程的PID 号并按Enter 键终止对应的进程
q键:退出top程序
数字1键:显示CPU 个数和状态
1.5pgrepコマンド-プロセス情報の表示
特定の条件に基づいてプロセスPID情報を照会します
(1)pgrep -l“ log”
-l:プロセス名を表示
します。デフォルトではPID番号のみが出力されます。
pgrep -l -U root -t tty2
-U:ガイド機能ユーザー
-t:指定端末
1.6pstree-プロセスツリーを表示
プロセス情報をツリー構造にリストします
pstree-aup
-a:
完全な情報を表示します
-u:対応する
ユーザー名を一覧表示します
-p:
対応するPID番号を一覧表示します
2.プロセスを開始する方法
2.1手動スタート
フォアグラウンドで開始:
ユーザーがコマンドを入力し、プログラムを直接実行します。
バックグラウンドで開始:
コマンドラインの最後に「&」記号を追加
します(出力情報には、バックグラウンドタスクのシリアル番号とPID番号が含まれます)
2.2スケジュール開始
- atコマンドを使用して、1回限りのスケジュールされたタスクを設定します
- crontabコマンドを使用して、定期的にスケジュールされたタスクを設定します
2.3プロセスのフロントエンドとバックエンドのスケジューリング
- Ctrl + Zキーの組み合わせ-現在のプロセスを一時停止します。つまり、バックグラウンドに転送して実行を停止します
- jobsコマンド-
バックグラウンドジョブのタスクのリストを表示します
[-l] - fgコマンド-
バックグラウンドプロセスをフォアグラウンドに復元します。タスク番号を指定できます
2.4プロセスの操作を終了します
2.4.1 Ctrl + Cキーの組み合わせ
-実行中のコマンドを中断します
2.4.2 kill、killallコマンド
- killコマンド-指定されたPID番号でプロセスを終了するために使用されます
- killallコマンド-指定された名前に関連するすべてのプロセスを終了するために使用されます
- -9オプションは強制終了に使用されます
2.4.3pkillコマンド
- 特定の条件に従って、対応するプロセスを終了します
- 一般的なコマンドオプション:
-∪:
プロセスのユーザー名に従って対応するプロセスを終了します
-t:
プロセスが配置されている端末に従って対応するプロセスを終了します
3.タスク管理を計画します
3.1コマンドで
1回限りのスケジュールされたタスク:
[00:00] [yyyy-mm-dd]
3.2crontabコマンド
定期的にスケジュールされたタスク:
- 事前設定された期間(分、時間、日、月、週)に従って、ユーザー指定のコマンド操作を繰り返します。
- 定期的なスケジュールされたタスク
- 主な設定ファイル:
-ファイルにあるグローバル構成ファイル:/ etc / crontab-
ディレクトリにあるシステムデフォルト設定:/ etc / cron。* /-ファイルにあるユーザー
定義設定:/ var / pool / cron / username
crontabのスケジュールされたタスクを管理します。
- スケジュールされたタスクを編集します
crontab-e [-u username]
(-Uはデフォルトで現在のユーザーにデフォルト設定されます)
- スケジュールされたタスクを表示する
crontab-4 [-u username] - スケジュールされたタスクを削除します
crontab-r [-u username]
crontabタスク構成の形式:
フィールド | 説明 |
---|---|
分 | 値は0から59までの任意の整数です |
時間 | 値は0から23までの任意の整数です |
日付 | 値は1から31までの任意の整数です |
月 | 値は1から12までの任意の整数です |
週間 | 値は0から7までの任意の整数で、0または7は日曜日を表します |
コマンド | 実行するコマンドまたはプログラムスクリプト |
時間値の特別な表現方法:
* | 範囲内の任意の時間を示します | たとえば、日付の位置では、それは毎日を表します |
---|---|---|
、 | 間隔内の複数の個別の時点を表します | たとえば、週の位置の2と4は、毎週火曜日と木曜日を表します |
- | 連続した時間範囲を表します | たとえば、日付位置の1〜5は、1日から5日を表します。 |
/ | 間隔の時間頻度を指定します | たとえば、時間位置のde / 4は、4時間ごとを意味します |
例:
0 17 * * 1-5 | 月曜日から金曜日の17:00 |
---|---|
30 8 * * 1,3,5 | 毎週月曜日、水曜日、金曜日の8:30 |
0 8-18 / 2 * * * | 8時から18時まで2時間ごと |
0 * * / 3 * * | 3日ごと |