『壹』 linux命令裡面的nohup命令和 & 是一個意思嗎不掛斷是什麼意思
『貳』 Linux後台進程
引入的原因: 用於控制向多個進程進行信號的分發,發給一個進程組是信號會發生給進程組中每一個進程
會話是一個或者多個進程組的集合,進程調用 setsid 函數建立一個會話。
進程調用setsid函數建立一個新的會話,會發生下面幾件事
守護進程是生存期長的一種進程,沒有控制終端。他們常常在系統引導裝入時啟動,系統關閉是終止。守護進程程序通常以字母 d 結尾。
用戶層的守護進程的父進程是 init 進程。內核的守護進程並非init進程。
以 & 方式運行的為後台進程
比如: ping www..com &
通過 jobs 命令查看
將後台程序放到前台
通過 control+c 命名發送』hupinit『信號kill掉進程
終端被掛斷或者用戶注銷,SIGHUP信號會被發送到該終端相關的控製程序,而SIGHUP的默認行為是終止程序的運行。
需要實現終端退出後進程依然在後台運行,有兩種途徑
如果setid函數的進程就是一個進程組的組長,則函數會返回出錯。為了解決這樣情況,通常函數需要先fork,然後父進程退出,由子進程執行setsid。由於子進程繼承的是父進程的進程組ID,而其PID是新分配的ID,因此這兩者不可能相等,即子進程不可能是進程組的組長。 這種情況下,由於父進程先於子進程退出,因此子進程的父進程會有init進程接管。 而這就是sid命令的實現原理。
設置 setsid www..com
我們對比下和nohup
我們可以看到setsid的父進程變成了init進程。由於會話和父進程和shell無關了,因此無論如何shell都無法向該進程發送SIGHUP命令
『叄』 如何為「Linux命令」設置快捷鍵
Linux的一個特色就是其命令多而且功能強大, 頻繁輸入命令不僅麻煩而且工作量較大,雖然可以使用TAB進行>命令補足,或者使用aliase來簡化某個命令的輸入,但這並不能從根本上解決敲擊鍵盤次數過多的問題。x0dx0ax0dx0a可以把任何命令或命令的組合指定給鍵盤上的某個鍵,可以是Alt+[A-Z],x0dx0aCtrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-F[1-12], Alt+Shift+F[1-12],還有更不可思議的是甚至還可以為功能鍵加上「參數」,這樣你按下那個鍵的時候,它會等待你輸入相應的參數,並根據不同的參數運行不同的命令。x0dx0ax0dx0a當然,有一些熱鍵會被終端所捕獲,如常見的Ctrl-D/C/Q/Z等,不過沒關系,可用的熱鍵還多著呢!x0dx0ax0dx0a定義熱鍵的配置文件為:/etc/inputrc 或 ~/.inputrc,定義熱鍵的格式如下:x0dx0ax0dx0a"<熱鍵對應的ASCII字元>":"<執行的命令>"x0dx0ax0dx0a其中熱鍵對應的ASCII字元可以通過 "先按Ctrl-V, 然後按熱鍵" 的方式來輸入, 如Ctrl-G對應的字元為^G, Alt-P對應的字元為^[p, Ctrl-Alt-H對應的字元為^[^H.x0dx0ax0dx0a可以用/C來代替Ctrl,/M來代替Alt, /M-/C來代替Alt-Ctrl, 如/C-M = Ctrl-M, /M-/C-H = Alt-Ctrl-M. 另外還可以用/e代表^[.x0dx0ax0dx0a先來看一些基本的熱鍵定義,(這里熱鍵里的字母不區分大小寫):x0dx0a"^[-":"su -/C-M" # 按Alt+- 執行su - 命令,末尾/C-M表示輸入完定義的命令後回車,也可以更簡潔地用一個/n來表示.x0dx0ax0dx0a"/M-/C-G":"gaim & &>/dev/null && disown/C-M"x0dx0a# 按Ctrl-Alt-g在當前shell打開gaim, 並脫離該shell獨立運行,即:即使你退出了該shell, gaim也不會關閉x0dx0ax0dx0a其他一些組合鍵可以根據自己的需要配置,偶就不多說了.x0dx0ax0dx0a大家也許會覺得這樣定義熱鍵太亂了,而且很難記住,還有一定的限制。這個問題在後面會得到解決。x0dx0ax0dx0a一般情況下,我們可以使用上下方向鍵來查找命令歷史列表,以此重復輸入命令,但是方向鍵離主鍵盤區太遠,如>果頻繁使用的話,會耽誤不少時間,而且挪動右手時也不太方便,有沒有什麼辦法把方向鍵的功能轉移到我們經常>敲命令的地方呢?如使用Alt+J = Down Arrow 向下查找,Alt+K=Up Arrow 向下查找x0dx0ax0dx0a通過定義熱鍵可以做到這點:x0dx0ax0dx0a"/eh":"^[OD" # move leftx0dx0a# Alt-H 向左移一個字元, 相當於Left Arrowgh, 這里^[OD即向上方向鍵的ASCII字元,輸入方式與前面提到的類似x0dx0a"/el":"^[OC" # move rightx0dx0a# Alt-L 向右移一個字元,相當於Right Arrowx0dx0ax0dx0a"/ej":"^[OB" # move upx0dx0a# Alt-J 向下移動,相當於Up Arrowx0dx0ax0dx0a"/ek":"^[OA" # move downx0dx0a# Alt-K 向上移動,相當於Down Arrowx0dx0ax0dx0a"/ei":"^?" # left earse one characterx0dx0a# Alt-I 向左刪除一個字元,相當於Backspacex0dx0ax0dx0a"/eo":delete-char # right earse one characterx0dx0a# Alt-O 向右刪除一個字元,相當於Deletex0dx0ax0dx0a"/en":backward-kill-word # left kill one wordx0dx0a# Alt-N 向左刪除一個單詞x0dx0ax0dx0a"/em":kill-word # right kill one wordx0dx0a# Alt-M 向右刪除一個單詞x0dx0ax0dx0a"/ea":"^[n^[n^[n^[n^[n^[n^[n" # kill to the headx0dx0a# Alt-A 刪除當前位置到開頭,也就是多Alt-N幾次(A--> ahead)x0dx0ax0dx0a"/ee":"^[m^[m^[m^[m^[m^[m^[m" # kill to the headx0dx0a# Alt-E 刪除當前位置到末尾,也就是多Alt-M幾次(E--> end)x0dx0ax0dx0a"/ep": insert-last-argumem"x0dx0a# Alt-P 插入上一個命令最後一個參數 (P--> Paste)x0dx0ax0dx0a"/ew": forward-wordx0dx0a# 系統默認Alt-F (forward)跳到當前單詞詞尾,如果已在詞尾,則跳到下一個單詞(右邊一個單詞)詞尾x0dx0ax0dx0a"/eq": backward-wordx0dx0a# 系統默認Alt-B (backward)跳到當前單詞詞首,如果已在詞首,則跳到上一個單詞(左邊一個單詞)詞首x0dx0ax0dx0a發覺F和B鍵離得太遠,不方便,偶分別改作Alt-Q, Alt-W, 但是Alt-F/B照樣可以用x0dx0ax0dx0a這樣輸入命令的時候幾乎可以不用離開主鍵盤區,而且移動游標,刪除字元,刪除單詞,上下歷史命令查找都集中>在一塊,比以前方便多了。不過開始可能有些不習慣,就跟使用vi一樣,但是多練幾次就熟練了。x0dx0ax0dx0aLinux下絕大部分服務的配置是基於配置文件的,一般說來,更改了某個服務的配置文件,要使其立即生效,還需重啟該服務直接的或依附的守護進程才行。難道你就不覺得「每次 vi /etc/xxx.conf 完後又 service xxx restart/reload 或 killall -HUP xxx」這樣做很繁瑣么?如果要配置的服務較多而且要不停地調試呢?況且我們平常使用Linux時難免會不時地終止或啟動某個服務進程,輸入命令的次數也不少。如果為每個服務都指定一個熱鍵的話,似乎不大可能。如果我們賦予一個熱鍵為一個基本鍵,而相應的服務為其「參數」,那又如何呢?x0dx0ax0dx0a舉個例子,賦予Alt-S (S-->Start)為啟動服務的基本鍵,服務名的前2個字元為啟動「參數」,那麼就可以像下面那樣隨意啟動某個服務了:x0dx0a"/essm":"service smb start/n"x0dx0a# /es=Alt-s, sm=smb,x0dx0a# 即:按下Alt-s後緊跟著再輸入sm(這時輸入的sm並不會顯示在終端上),就可以啟動samba的服務進程了,不必擔心按下鍵與輸入「參數」間的時間延遲問題,你按下Alt-s,然後去外面兜一圈回來,再接著輸入sm,照樣可以。x0dx0ax0dx0a"/esht":"service httpd start/n" # ht=httpd,啟動Apache服務x0dx0ax0dx0a類似地,我們賦予x0dx0aAlt-D(D--> shutDown) 為停止服務的基本鍵x0dx0aAlt-R(R--> Restart) 為重啟服務的基本鍵x0dx0aAlt-T(T--> Status) 為查看服務狀態的基本鍵x0dx0aAlt-C(C--> Configure) 為打開服務對應的主配置文件的基本鍵x0dx0a如:"/ecnf":"vi /etc/exports/n" # Alt-c+nf 打開NFS的配置文件x0dx0a"/ecsm":"vi /etc/samba/smb.conf/n" # Alt-c+sm 打開smb的配置文件x0dx0ax0dx0a如果某個服務(如ssh)有2個配置文件,可以在其後再加一個數字,如:x0dx0a"/ecssh1":"vi /etc/ssh/sshd_config/n" # 打開sshd服務端配置文件x0dx0a"/ecssh2":"vi /etc/ssh/ssh_config/n" # 打開sshd客戶端配置文件x0dx0ax0dx0a如果要執行某個應用程序呢?可以用Alt-x做基本鍵(x--> eXeccute) 如:x0dx0a"/exga":"gaim & &>/dev/null && disown && clean /n"x0dx0a"/exxm":"xmms & &>/dev/null && disown && clean /n"x0dx0a"/exvm":"vmware & &>/dev/null && disown && clean /n" "/exna":"nautilus & &>/dev/null && disown && clean /n"x0dx0a等等....x0dx0ax0dx0a到現在為止我們只要按1個組合鍵+2個字元就可以實現下面眾多的功能:x0dx0a1. 執行指定的應用程序x0dx0a2. 啟動|重啟|關閉|指定的服務進程x0dx0a3. 查看指定服務的狀態x0dx0a4. 打開指定服務的指定配置文件
『肆』 在Linux系統中查看進程及殺死僵屍進程的方法
ps
命令
ps
命令就是最根本相應情況下也是相當強大地進程查看命令.運用該命令可以確定有哪些進程正在運行和運行地狀態、
進程
是否結束、進程有沒有僵死、哪些進程佔用了過多地資源等等.總之大部分信息均為可以通過執行該命令得到地.
ps
命令及其參數
ps
命令最經常使用地還是用於監控後台進程地工作情況,因為後台進程是不和屏幕鍵盤這些標准輸入/輸出設
備進行通信地,所以如果需要檢測其情況,便可以運用
ps
命令了.
該命令語法格式如下:
ps
[選項]
-e
顯示所有進程,環境變數
-f
全格式
-h
不顯示標題
-l
長格式
-w
寬輸出
a
顯示終端上地所有進程,包括其他用戶地進程
r
只顯示正在運行地進程
x
顯示沒有控制終端地進程
O[+|-]
k1
[,[+|-]
k2
[,…]]
根據
SHORT
KEYS、k1、k2
中快捷鍵指定地多級排序順序顯示進程列表.
對於
ps
地不同格式都存在著默認地順序指定.這些默認順序可以被用戶地指定所覆蓋.在這裡面“+”字元是可選地,“-”
字元是倒轉指定鍵地方向.
pids
只列出進程標識符,之間運用逗號分隔.該進程列表必須在命令行參數地最後一個選項後面緊接著給出,中間不能插入
空格.比如:ps
-f1,4,5.
以下介紹長命令行選項,這些選項都運用“--”開頭:
--sort
X[+|-]
key
[,[+|-]
key
[,…]]
從
SORT
KEYS
段中選一個多字母鍵.“+”字元是可選地,因為默認地方向就是按
數字升序或者詞典順序.比如:
ps
-jax
-sort=uid,-ppid,+pid.
--help
顯示幫助信息.
--version
顯示該命令地版本信息.
在前面地選項說明中提到了排序鍵,接下來對排序鍵作進一步說明.需要注意地是排序中運用地值是
ps
運用地內部值,並非
僅用於某些輸出格式地偽值.排序鍵列表見表
4-3.
排序鍵列表
c
cmd
可執行地簡單名稱
C
cmdline
完整命令行
f
flags
長模式標志
g
pgrp
進程地組
ID
G
tpgid
控制
tty
進程組
ID
j
cutime
累計用戶時間
J
cstime
累計系統時間
k
utime
用戶時間
K
stime
系統時間
m
min_flt
次要頁錯
查找Zombie進程
首先,當桌面程序卡死的時候,你可以嘗試進入其他tty終端。切換方式:ctrl
+
alt
+
[1,2,3,4,5,6,7],7是桌面終端
其次,你可以使用top命令查看當前是否有Zombie進程
從上圖可以看到僵屍進程數,num
zombie,num大於0,則代表系統存在僵屍進程
最後,利用ps命令查找Zombie進程
復制代碼
代碼如下:
ps
-A
-ostat,ppid,pid,cmd
|
grep
-e
'^[zZ]'
示例
:
殺死Zombie進程
直接kill
-9
Zombiepid是沒有作用的,原因是:Zombie表示進程已經退出,想要清理這樣的進程,需要清除其父進程或者等很長時間後內核將其清除
復制代碼
代碼如下:
kill
-HUP
ppid
後記
不知道為什麼我注銷之後重新登錄還有這個僵屍進程,懷疑是否是LightDM的bug,不過Ubuntu12.04
desktop
display
manager就是LightDM,所以kill
-HUP至少起到了注銷的作用,不用重啟了
『伍』 Linux幾種中斷信號的區別:HUP,INT,KILL,TERM,TSTP
Linux的HUP,INT,KILL,TERM,TSTP中斷信號區別為:鍵入不同、對應操作不同、啟用不同。
一、鍵入不同
1、HUP中斷信號:HUP中斷信號是當用戶鍵入<Ctrl+X>時由終端驅動程序發送的信號。
2、INT中斷信號:INT中斷信號是當用戶鍵入<Ctrl+I>時由終端驅動程序發送的信號。
3、KILL中斷信號:KILL中斷信號是當用戶鍵入<Ctrl+Z>時由終端驅動程序發送的信號。
4、TERM中斷信號:TERM中斷信號是當用戶鍵入<Ctrl+>時由終端驅動程序發送的信號。
5、TSTP中斷信號:TSTP中斷信號是當用戶鍵入<Ctrl+T>時由終端驅動程序發送的信號。二、對應操作不同
1、HUP中斷信號:HUP中斷信號的對應操作為讓進程掛起,睡眠。
2、INT中斷信號:INT中斷信號的對應操作為正常關閉所有進程。
3、KILL中斷信號:KILL中斷信號的對應操作為強制關閉所有進程。
4、TERM中斷信號:TERM中斷信號的對應操作為正常的退出進程。
5、TSTP中斷信號:TSTP中斷信號的對應操作為暫時停用進程。
三、啟用不同
1、HUP中斷信號:HUP中斷信號發送後,可以重新被用戶再次輸入恢復啟用進程。
2、INT中斷信號:INT中斷信號發送後,不可以重新被用戶再次輸入恢復啟用進程。
3、KILL中斷信號:KILL中斷信號發送後,不可以重新被用戶再次輸入恢復啟用進程。
4、TERM中斷信號:TERM中斷信號發送後,可以重新被用戶再次輸入啟用進程。
5、TSTP中斷信號:TSTP中斷信號發送後,可以重新被用戶再次輸入繼續使用進程。
『陸』 Linux中的kill -s命令的意思是可以發送指定的信號哈,但信號通常是:TREM和HUP等等
有-s,下面兩種寫法都對: kill -s 信號名 進程號 kill -信號名 進程號 Usage: kill pid ... Send SIGTERM to every process listed. kill signal pid ... Send a signal to every process listed. kill -s signal pid ... Send a signal to every process listed. kill -l List all signal names. kill -L List all signal names in a nice table. kill -l signal Convert between signal numbers and names. 通過kill -l 可以看到所有信號名
『柒』 linux怎麼查看硬體告警
想知道怎麼查看Linux中的硬體告警嗎?下面是我帶來的關於linux怎麼查看硬體告警的內容,歡迎閱讀!
Linux查看硬體告警 方法 一:
Linux系統擁有非常靈活和強大的日誌功能,可以保存幾乎所有的操作記錄,並可以從中檢索出需要的信息。
大部分Linux發行版默認的日誌守護進程為 syslog,位於 /etc/syslog 或 /etc/syslogd,默認配置文件為 /etc/syslog.conf,任何希望生成日誌的程序都可以向 syslog 發送信息
/sbin/syslogd
在修改syslog配置後,需要重新啟動syslogd守護進程才能使新的配置生效。其命令如下所示。
# killall -HUP syslogd
Red Hat Enterprise Linux 5.2安裝後默認就已經在syslog中定義了一些日誌文件。
說明
/var/log/message
系統啟動後液野的信息和錯誤日誌,是Red Hat Linux中最常用的日誌之一
/var/log/secure
與安全相關的日誌信息
/var/log/maillog
與郵件相關的日誌信息
/var/log/cron
與定時任務相關的日誌信息
/var/log/spooler
與UUCP和news設備相關的日誌信息
/var/log/boot.log
守護進程啟動和停止相關的日誌消息
Linux查看硬體告警方法二:
日誌作為普通的文本文件存儲在磁碟中,因此可以通過查看文件的命令來查看日誌。比如:通過tail命令查看日誌的最後10行,通過head命令查看命令的開頭10行。
日誌文件的默認存儲路徑是:/var/log
下面是幾個重要的日誌文件:
/var/log/messages:包括整體系統信息,其中也包含系統啟動期間的日誌。此外,還包括mail,cron,daemon,kern和auth等內容。
/var/log/syslog:它和/etc/log/messages日誌文件不同,它只記錄警告信息,常常是系統出問題的信息。
/var/log/user.log:記錄所有等級用戶信息的日誌。
/var/log/auth.log:包含系統授權信息,包括用戶登錄和使用的許可權機制等。
要查看最新的10條系統消息就可以使用命令:
tail /var/log/messages
看了"linux怎麼查看硬體告警" 文章 內容的人還看:
1. linux中查看硬體信息的方法有哪些
2. 如何查看Linux載入內置模塊的信息
3. linux怎麼查看內存
4. linux怎麼查看cpu的使用率問題
5. 如何正鬧運喊確查悄正看Linux機器內存使用情況
6. linux怎麼查看內存使用情況
7. linux系統如何查看內存使用情況
8. Linux查看cpu個數
『捌』 Linux終止前台進程的命令
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
『玖』 linux切割、備份大的nohup日誌文件
nohup.out日誌文件太大了,且一直增長,命令查看日誌受阻
①切割老核大文件變成多個小文件
②每天定時保存前一天的日誌,重新記錄當天日誌
1.利用split命令切割
①按文件大小切割大文件:
切割文件:將ohup.out文件每500M切割一個文件放到/home/nginx/logs/newlog/目錄下
②按文件行數切割大文件:
查詢文件侍扒掘行數:
wc -l b.log
2038711 b.log
按50W行切割一個文件:
split -l 500000 -d -a 4 /home/nginx/logs/b.log /home/nginx/logs/newlog/
2.定時備份前一天日誌,重新記錄當天此枯日誌splitlog.sh
3.定時執行
查看定時任務:
crontab -l
編輯定時任務:
crontab -e
重啟定時任務:
刪除10天以前的日誌文件,此日期為文件本身的時間,非日誌內容時間