Linux技術的發展引起了很多企業和個人的關注。市場對Linux運維的需求逐漸增加,學習Linux技術的人越來越多。在Linux運維中,進程是必須學習掌握的技能。那麼Linux中如何啟動進程?常用的進程調度命令有哪些?
執行中的程序稱作進程。當程序的可執行文件存儲在存儲器中並運行時,每個進程將被動態分配系統資源、內存、安全屬性和相關狀態。多個進程可以與同一個程序相關聯,並在同一時間執行,而不會相互干擾。操作系統將有效地管理和跟蹤所有正在運行的進程。
Linux中如何啟動進程?啟動進程的方法是什麼?
手工啟動。用戶在輸入端發出命令,直接啟動進程。分為前台啟動和後台啟動。前台啟動:直接在SHELL中輸入命令進行啟動。後台啟動:啟動一個目前並不緊急的進程。
調度啟動。系統管理員根據系統資源和進程佔用資源的情況,事先進行調度安排,指定任務運行的時間和場合,到時候系統會自動完成該任務。
常用的進程調度命令有哪些?
常用的進程調度命令有:at、batch、crontab。
以上便是關於「如何啟動或終止進程?常用的進程調度命令有哪些?」的相關介紹。想要成為一名優秀的Linux運維工程師,需要掌握更多的Linux知識。
『貳』 Linux系統常見命令
which:which [文件名] which mysql;
find:-name 按照文件名查找文件,
如:find /dir -name filename 在/dir目錄及其子目錄下面查找名字為filename的文件。
linux 中的查看進程命令;find . -name "*.c" 在當前目錄及其子目錄(用「.」表示)中查找任何擴展名為「c」的文件。
ps命令 是最常用的監控進程的命令,通過此命令可以查看系統中所有運行進程的詳細信息。
基本操作: ps -le #查看系統中所有的進程,使用 Linux 標准命令格式 ;ps aux #查看系統中所有的進程,使用 BS 操作系統格式。
可選項
a: 顯示一個終端的所有進程;
u: 顯示進程的歸屬用戶及內存的使用情況;
x: 顯示沒有控制終端的進程;
-l: 長格式顯示更加詳細的信息;
-e: 顯示所有進程;
最常用的兩種:"ps aux" 可以查看系統中所有的進程;"ps -le" 可以查看系統中所有的進程,而且還能看到進程的父進程的 PID 和進程優先順序;"ps -l" 可以查看當前登錄 產生了哪些進程
創建文件:
vi/vim filename : 創建新文件並且使用編輯器進入該文件進行編輯,與touch命令不同的是, 如果未編輯該文件就退出,那麼該文件不會被保存(換句話說,新文件為空時不保存新建的文 件);
touch filename : 直接創建新的空文件,需要編輯器打開編輯;
echo "內容" > hehe.txt : 它允許你在創建一個文件時就向其中輸入一些文本;
查看文件:
cat 文件名 : 由第一行開始顯示內容,並將所有內容輸出;
more 文件名 : 根據窗口大小,一頁一頁的現實文件內容;
tail : 可以實時列印最新的日誌信息;
ls 執行的功能:列出指定目錄中的目錄,以及文件;
『叄』 Linux中啟動進程的方法有哪些哪種更好用
啟動進程有手動啟動和調度啟動兩種方法, 其中調度啟動常用的命令為at、batch和crontab.,好用不好用我覺得都差不多~ 調度啟動吧!希賽資料庫里有的噢
『肆』 Linux進程詳解
ps是Linux 中最基礎的瀏覽系統中的進程的命令。能列出系統中運行的進程,包括進程號、命令、CPU使用量、內存使用量等。接下來解讀一下Linux操作系統的進程和Windows「Ctrl+Alt+delete」直接的差異。
在進行了解進程命令之前需要知道進程的一些狀態
ps工具標識進程的5種狀態碼:
Linux操作系統進程執行的狀態轉換圖如圖所示:
下面來看一下 ps命令
ps --help命令可以查看ps命令的使用說明
或者使用 man ps命令 查詢ps的詳細說明
在 man手冊 關於ps的解讀中,總結了一下幾個參數的含義:
以上的參數是可以拼接使用的,那就了解一些常用的參數組合
ps aux命令
ps -ef命令
查看進程狀態這兩個是命令是最常用的,使用 ps aux 可以查看進程的詳細運行狀態等。使用 ps -ef 不僅可以顯示自身的PID,也可以顯示PPID(父進程)。但是顯示不了進程的運行狀態
top命令
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
man手冊關於top的解釋
關閉進程,重啟進程
在上一片文章中 linux的目錄結構 裡面說過,在目錄/etc/init.d/目錄下包含許多系統各種服務的啟動和停止腳本。假設進程佔用內存較大或者進程異常,我們是重啟這個進程restart。如下圖所示:
我們重啟了mysqld這個進程,可以看出進程號已經改變(從15743到15964),說明進程已經重啟。
Linux下有3個特殊的進程,idle進程(PID=0), init進程(PID=1)和kthreadd(PID=2)
我們來看一下進程狀態[下面是刪減版,進程數量太多,列舉一部分]
可以看到很多進程的PPID號是1和2。也就是init進程和kthreadd進程。
在使用Windows系統的過程中,都碰到過應用程序卡死的情況。應對此問題,我們一般都是等待失去響應的程序恢復,或者是直接使用任務管理器將其強制關閉,然後再重新打開。
在Linux中,遇到特別耗費資源的進程,當然需要使用 top命令 查看進程佔用率高的進程。或者使用 free -m命令 查看內存剩餘。假設需要強殺進程來釋放空間。我們涉及到Linux中信號📶的知識,在這里簡單的描述一下,信號的詳解會在接下來的文章裡面敘述。
free -m命令查看內存空間
在linux中存在著64種信號
使用 kill -l命令 查看信號列表
在前面說過進程會被這些個信號> (進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號強制停止運行) 那問題就在於如何發信號給這些個進程。
使用kill命令發信號
我們從上面可以看到 mysqld進程被重啟了 。
關於Linux的這一塊進程的知識還有很多,後面的文章跟大家分享僵屍進程,孤兒進程等等知識,以及守護進程(daemon進程).
『伍』 linux下如何運行程序
運行()中間是你的命令
調用格式: 〈邏輯型〉 運行 (文本型 欲運行的命令行,邏輯型 是否等待程序運行完畢,[整數型 被運行程序窗口顯示方式]) - 系統核心支持庫->系統處理
英文名稱:run
本命令運行指定的可執行文件或者外部命令。如果成功,返回真,否則返回假。本命令為初級命令。
參數<1>的名稱為「欲運行的命令行」,類型為「文本型(text)」。
參數<2>的名稱為「是否等待程序運行完畢」,類型為「邏輯型(bool)」,初始值為「假」。
參數<3>的名稱為「被運行程序窗口顯示方式」,類型為「整數型(int)」,可以被省略。參數值可以為以下常量之一:1、#隱藏窗口; 2、#普通激活; 3、#最小化激活; 4、#最大化激活; 5、#普通不激活; 6、#最小化不激活。如果省略本參數,默認為「普通激活」方式。
操作系統需求: Windows、Linux
『陸』 Linux ps命令:用於顯示當前進程 (process) 的狀態
ps [options] [—help]
ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名稱>][-g <群組名稱>]
[-G <群組識別碼>][-p <進程識別碼>][p <進程識別碼>][-s <階段作業>]
[-t <終端機編號>][t <終端機編號>][-u <用戶識別碼>][-U <用戶識別碼>]
[U <用戶名稱>][-<進程識別碼>][--cols <每列字元數>]
[--columns <每列字元數>][--cumulative][--deselect][--forest]
[--headers][--help][-- info][--lines <顯示列數>][--no-headers]
[--group <群組名稱>][-Group <群組識別碼>][--pid <進程識別碼>]
[--rows <顯示列數>][--sid <階段作業>][--tty <終端機編號>]
[--user <用戶名稱>][--User <用戶識別碼>][--version]
[--width <每列字元數>]
-a 顯示所有終端機下執行的進程,除了階段作業領導者之外
a 顯示現行終端機下的所有進程,包括其他用戶的進程
-A 顯示所有進程
-c 顯示CLS和PRI欄位
c 列出進程時,顯示每個進程真正的指令名稱,而不包含路徑,參數或常駐服務的標示
-C<指令名稱> 指定執行指令的名稱,並列出該指令的進程的狀況
-d 顯示所有進程,但不包括階段作業領導者的進程
-e 此參數的效果和指定"A"參數相同
e 列出進程時,顯示每個進程所使用的環境變數
-f 顯示UID,PPIP,C與STIME欄位
f 用ASCII字元顯示樹狀結構,表達進程間的相互關系
-g<群組名稱> 此參數的效果和指定"-G"參數相同,當亦能使用階段作業領導者的名稱來指定
g 顯示現行終端機下的所有進程,包括群組領導者的進程
-G<群組識別碼> 列出屬於該群組的進程的狀況,也可使用群組名稱來指定
h 不顯示標題列
-H 顯示樹狀結構,表示進程間的相互關系
-j或j 採用工作控制的格式顯示進程狀況
-l或l 採用詳細的格式來顯示進程狀況
L 列出欄位的相關信息
-m或m 顯示所有的執行緒
n 以數字來表示USER和WCHAN欄位
-N 顯示所有的進程,除了執行ps指令終端機下的進程之外
-p<進程識別碼> 指定進程識別碼,並列出該進程的狀況
p<進程識別碼> 此參數的效果和指定"-p"參數相同,只在列表格式方面稍有差異
r 只列出現行終端機正在執行中的進程
-s<階段作業> 指定階段作業的進程識別碼,並列出隸屬該階段作業的進程的狀況
s 採用進程信號的格式顯示進程狀況
S 列出進程時,包括已中斷的子進程資料
-t<終端機編號> 指定終端機編號,並列出屬於該終端機的進程的狀況
t<終端機編號> 此參數的效果和指定"-t"參數相同,只在列表格式方面稍有差異
-T 顯示現行終端機下的所有進程
-u<用戶識別碼> 此參數的效果和指定"-U"參數相同
u 以用戶為主的格式來顯示進程狀況
-U<用戶識別碼> 列出屬於該用戶的進程的狀況,也可使用用戶名稱來指定
U<用戶名稱> 列出屬於該用戶的進程的狀況
v 採用虛擬內存的格式顯示進程狀況
-V或V 顯示版本信息
-w或w 採用寬闊的格式來顯示進程狀況。
x 顯示所有進程,不以終端機來區分
X 採用舊式的Linux i386登陸格式顯示進程狀況
-y 配合參數"-l"使用時,不顯示F(flag)欄位,並以RSS欄位取代ADDR欄位
-<進程識別碼> 此參數的效果和指定"p"參數相同
--cols<每列字元數> 設置每列的最大字元數
--columns<每列字元數> 此參數的效果和指定"--cols"參數相同
--cumulative 此參數的效果和指定"S"參數相同
--deselect 此參數的效果和指定"-N"參數相同
--forest 此參數的效果和指定"f"參數相同
--headers 重復顯示標題列
--help 在線幫助
--info 顯示排錯信息
--lines<顯示列數> 設置顯示畫面的列數
--no-headers 此參數的效果和指定"h"參數相同,只在列表格式方面稍有差異
--group<群組名稱> 此參數的效果和指定"-G"參數相同
--Group<群組識別碼> 此參數的效果和指定"-G"參數相同
--pid<進程識別碼> 此參數的效果和指定"-p"參數相同
--rows<顯示列數> 此參數的效果和指定"--lines"參數相同
--sid<階段作業> 此參數的效果和指定"-s"參數相同
--tty<終端機編號> 此參數的效果和指定"-t"參數相同
--user<用戶名稱> 此參數的效果和指定"-U"參數相同
--User<用戶識別碼> 此參數的效果和指定"-U"參數相同
--version 此參數的效果和指定"-V"參數相同
--widty<每列字元數> 此參數的效果和指定"-cols"參數相同
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)
ps工具標識進程的5種狀態碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (」zombie」) process
1、# ps aux //顯示所有正在內存中的程序
USER:該 process 屬於那個使用者賬號的
PID :該 process 的號碼
%CPU:該 process 使用掉的 CPU 資源百分比
%MEM:該 process 所佔用的物理內存百分比
VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
RSS :該 process 佔用的固定的內存量 (Kbytes)
TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網路連接進主機的程序。
STAT:該程序目前的狀態,主要的狀態有
R :該程序目前正在運作,或者是可被運作
S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。
D: 無法中斷的休眠狀態 (通常 IO 的進程)
T :該程序目前正在偵測或者是停止了
Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆屍) 程序的狀態
<: 高優先序的行程
N: 低優先序的行程
L: 有記憶體分頁分配並鎖在記憶體內 (實時系統或捱A I/O)
START:該 process 被觸發啟動的時間
TIME :該 process 實際使用 CPU 運作的時間
COMMAND:該程序的實際指令
2、# ps -A 顯示進程信息
3、# ps -u work //顯示work進程用戶信息
4、# ps -ef //顯示所有命令,連帶命令行
5、# ps -l //將屬於自己這次登入的pid與相關信息顯示出來
F:代表這個程序的旗標 (flag), 4 代表使用者為 super user
S:代表這個程序的狀態 (STAT)
UID:程序被該 UID 所擁有
PID:就這個程序的 ID
PPID:其上級父程序的ID
C:CPU使用的資源百分比
PRI: Priority (優先執行序) 的縮寫
NI: Nice 值
ADDR:kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 "-"
SZ:使用掉的內存大小
WCHAN:目前這個程序是否正在運作當中,若為 - 表示正在運作
TTY:登入者的終端機位置
TIME:使用掉的 CPU 時間。
CMD:所下達的指令為何
在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID,所以, 當使用 ps -l 的時候,只有三個 PID。
6、其他
1)可以用 | 管道和 more 連接起來分頁查看
命令:ps -aux |more
2)把所有進程顯示出來,並輸出到ps001.txt文件
命令:ps -aux > ps001.txt
3)輸出指定的欄位
命令:ps -o pid,ppid,pgrp,session,tpgid,comm
『柒』 linux查看進程命令
1、首先打開xshell軟體,連接上linux伺服器,使用指令ps查看系統進程,參數a表示全部,u表示以用戶格式顯示,x表示進程參數。
『捌』 Linux終止前台進程的命令
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。