Linux進程的查看和管理(包含計劃任務管理)

Linux進程的查看和管理(包含計劃任務管理)

概述:

進程的定義:“進程”是操作系統的最基本、最重要的概念之一, 進程是程序的一次執行。進程是可以並行執行的計算。

進程的特徵:動態性:是程序的一次執行;併發性:進程是可以併發執行;獨立性:是系統進行資源分配和調度的一個獨立單位;異步性:進程間的相互制約,使進程執行具有間隙;結構性:進程是具有結構的 。

一個應用程序可以包含一個或者多個進程

一個進程包含一個或者多個線程

本章基本結構:
在這裏插入圖片描述

一,查看進程

1.1,查看進程-----------ps命令(靜態查看)

常用選項

a:顯示當前終端下的所有進程信息

u:使用以用戶爲主的格式輸出進程信息

x:顯示當前用戶在所有終端下的所有信息

-e:顯示系統內的所有進程信息

-l:使用長格式顯示進程信息

-f:使用完整的格式顯示信息

例如:使用ps aus命令能以簡單列表的形式顯示出進程信息
在這裏插入圖片描述
列表標題含義如下

USER: 用戶

PID: 進程號

%CPU: CPU佔用比

%MEM: 內存佔用比

VSA: 虛擬內存佔用比

RSS: 物理內存佔用比

TTY: 終端

STST: 狀態

START: 啓動進程時間

TIME: 該進程佔用的CPU時間

COMMAND: 啓動該進程的命令名稱

例如:使用ps -elf命令以長格式顯示系統中的進程信息,包含PPID號(PID的父進程)

 ps -elf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 32041 ep_pol 13:54 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --syst
1 S root          2      0  0  80   0 -     0 kthrea 13:54 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 13:54 ?        00:00:00 [ksoftirqd/0]
1 S root          5      2  0  60 -20 -     0 worker 13:54 ?        00:00:00 [kworker/0:0H]
1 S root          6      2  0  80   0 -     0 worker 13:54 ?        00:00:00 [kworker/u256:0]
1 S root          7      2  0 -40   - -     0 smpboo 13:54 ?        00:00:00 [migration/0]
1 S root          8      2  0  80   0 -     0 rcu_gp 13:54 ?        00:00:00 

若直接執行不帶任何選項的ps命令,將顯示當前用戶會話中打開的進程。

[root@localhost ~]# ps
   PID TTY          TIME CMD
  3344 pts/0    00:00:00 bash
  3798 pts/0    00:00:00 ps
[root@localhost ~]# 

1.2,查看進程-------top命令(動態查看每3s自動刷新一次)
在這裏插入圖片描述
如上圖按C可以對%CPU從大到小進行排序

按M可以對%MEM從大到小進行排序

1.3,查看進程--------pgrep命令

常用選項:

-l:若不加只顯示PID號

-U:指定用戶

-t:指定終端

例如:pgrep -l -t pts/0 可以顯示root用戶在pts/0終端下的進程

[root@localhost ~]# pgrep -l -t pts/0 
3344 bash
38869 su
38870 bash
38918 su
38926 bash
[root@localhost ~]# 

1.4,查看進程-------pstree命令(以樹形結構列出進程信息)

常用格式:pstree -aup

-a:顯示完整信息

-u:列出對應用戶名

-p:列出對應PID號

[root@localhost ~]# pstree -aup
systemd,1 --switched-root --system --deserialize 21
  ├─ModemManager,568
  │   ├─{ModemManager},585
  │   └─{ModemManager},627
  ├─NetworkManager,657 --no-daemon
  │   ├─dhclient,38513 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf...
  │   ├─{NetworkManager},662
  │   └─{NetworkManager},665
  ├─VGAuthService,574 -s
  ├─abrt-watch-log,569 -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG atlist_del co
  ├─abrt-watch-log,599 -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD
  ├─abrtd,563 -d -s
  ├─accounts-daemon,566
  │   ├─{accounts-daemon},580
  │   └─{accounts-daemon},626
..// 省略部分類容

二,管理控制進程

2.1,啓動進程

啓動進程的方式:手工啓動,調度啓動

手工啓動--------cp命令

前臺啓動(輸入命令直接執行)

後臺啓動(在命令尾行加“&”符號,被執行文件較大時使用)

[root@localhost ~]# cp /dev/cdrom mycd.ios&
[2] 39545

調度啓動------at命令,crontab命令

at:一次性啓動,

啓動方式:設置時間(時間只能在當前時間之後)----》》輸入命令----》》ctrl+D提交任務

時間設置:at [小時:分鐘] [年月日]

date:查看當前時間

例如
在這裏插入圖片描述
crontab命令:按照之前設置的時間週期重複執行用戶指定的命令操作

常用格式

編輯計劃任務:crontab -e [-u 用戶名]

查看計劃任務:crontab -l [-u 用戶名 ]

刪除計劃任務:crontab -r[-u 用戶名]

時間週期設置順序

分鐘 小時 日期 月份 星期

啓動方式: crontab -e進入編輯 ---------週期設置 所需執行命令--------wq保存

例如

[root@localhost ~]# crontab -e -u root

在這裏插入圖片描述
時間數值的特殊表示方法

*表示該範圍內的任意時間

, 表示間隔的多個不連續時間點

- 表示一個連續的時間範圍

/ 指定間隔的時間頻率

例如:

0 17 * * 1-5 -------------------- 週一到週五每天17:00

0 8-18/2 * * * ------------------ 8點到18點之間每2個小時

0 * */ * * ------------------------- 每3天

2.2,終止進程

atrm #序列號

刪除序列號任務

Ctrl+c 組合鍵

中斷正在執行的命令

kill、killall命令

kill用於終止指定PID號的進程

killall用於終止指定名稱的所有進程

-9 用於強制終止

pkill命令

常用選項

-U: 根據進程所屬的用戶名終止相應進程

-t: 根據進程所在的終端終止相應進程

例如:

[root@localhost ~]# pgrep -l -U zhangsan(查看zhangsan用戶進程)
6469 gnome-keyring-d
6474 gnome-session-b
6481 dbus-launch
6482 dbus-daemon
[root@localhost ~]# pkill -9 -U zhangsan(殺死zhangsan用戶的進程)
[root@localhost ~]# pgrep -l -U zhangsan(再次查看zhangsan用戶的進程)
[root@localhost ~]# 
發佈了50 篇原創文章 · 獲贊 62 · 訪問量 8884
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章