歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux基本命令之管理進程

linux基本命令之管理進程

日期:2017/3/1 17:22:41   编辑:關於Linux
一:linux的引導流程(首先我們先了解一下linux的開機引導流程)

開機自檢
MBR引導(master boot record主引導記錄)
GRUB菜單(如果多系統的話、用來選擇用哪個系統的作用)
加載linux內核
INIT進程初始化
init進程
————是所有進程的父進程、對應的PID是1、/sbin/init是內核第一個加載的程序、不允許輕易終止、配置文件是/etc/inittab!

inittab配置文件
————inittab文件位於/etc目錄中,init進程運行後將按照該文件中的配置依次啟動系統中需要運行的腳本和程序

例:查看/etc/inittab文件中的有效配置行(去除注釋行和空行)

[root@localhost ~ ]# grep -v "^#" /etc/inittab | grep -v "^$"(-v反向查)
id:3:initdefault:(得出這樣的結果、3指的就是從字符界面啟動)

得出的結果結構如下:
標記:運行級別:動作類型:程序或腳本

id——標記字段
runlevels——運行級別字段
action——動作類型字段
process——程序或腳本字段

運行級別包括七種:

0:關機狀態
1:單用戶模式,不用密碼可登陸、多用於維護系統
2:字符界面的多用戶模式(不支持網絡)
3:字符界面的完整多用戶模式
4:未分配使用
5:圖形界面多用戶模式
6:重啟
注:使用不同運行級別代碼組合、如2345表示該配置在進入級別2、3、4、5時均有效

例:查看當前系統的默認運行級別,並將默認級別修改為3、以便下次開機後自動進入文本模式
[root@localhost ~ ] # grep ":initdefault" /etc/inittab
id:5:initdefault: (此刻默認級別是5將會從圖形界面啟動)
……
[root@localhost ~ ] # vi /etc/inittab
id:3:initdefault: (將5改為3即可)
……

例:查看inittab文件中設置的按Ctrl+Alt+Delete所對應的操作(3秒後重啟),若在該行記錄前添加“#”號就可以關閉該功能
[root@localhost ~ ] # grep ":ctrlaltdel" /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

例:確認inittab文件中使用“respawn”操作的各行配置
[root@localhost ~ ] # grep ":respawn" /etc/inittab
1:2345:respawn:/sbin/mingetty tty1
2:2345:respaws:/sbin/mingetty tty2
……
6:2345:respaws:/sbin/mingetty tty6
x:5:respawn:/etc/Xll/prefdm -nodaemon

rc.sysinit腳本文件
——是init進程所調用的系統初始化腳本,在/etc/rc.d/rc.sysinit、腳本主要完成包括設置網絡、主機名、加載文件系統、設置時鐘等

例:確認當前linux系統中使用的初始化腳本文件,並確認文件類型,查看開頭10行的內容
[root@localhost ~ ] # grep ":sysinit" /etc/inittab
si::sysinit:/etc/rc.d/rc.sysinit
[root@localhost ~ ] # file /etc/rc.d/rc.sysinit
/etc/rc.d/rc.sysinit : Bourne-Again shell script text executable
[root@localhost ~ ] # head -10 /etc/rc.d/rc.sysinit
#!/bin/bash
#
#/etc/rc.d/rc.sysinit - run once at boot time
#
……
HOSTNAME='/bin/hostname'
HOSTTYPE='uname -m'
unamer='uname -r'

rc腳本文件
——同樣是由init進程進行調用,位於/etc/rc.d/rc、通過制定不同級別的參數分別加載及終止不同的系統服務!

例:關閉cups打印服務
[root@localhost ~ ] # service cups stop 或執行/etc/rc.d/init.d/cups stop
例:重啟network網絡服務
[root@localhost ~ ] # service network restart 或執行/etc/rc.d/init.d/network restart

rc.local腳本文件
——一個額外的啟動控制文件,位於/etc/rc.d/rc.local、通常最後執行、作用:管理員設定自行啟動命令提供途徑、需要開機自啟的文件都可以放在裡面

例:確認rc.local腳本文件的位置及各運行級別中都加載了rc.local腳本文件
[root@localhost ~ ] # ls -l /etc/rc.d/rc?.d/*local /etc/rc.d/rc.local

例:在rc.local腳本中添加一條命令,以便每次啟動後根據BIOS中的時鐘自動校對系統時間
[root@localhost ~ ] # vi /etc/rc.d/rc.local
/sbin/hwclock --hctosys

運行級別控制

查看系統運行級別——[root@localhost ~ ] # runlevel
切換系統運行級別——init 3(切到字符界面)init 0(關機)

設置系統服務在不同運行級別中的狀態

1.使用ntsysv配置工具(*號表示自動啟動、沒有反之)
直接用ntsysv僅用於當前運行級別、可以--level指定運行級別

2.chkconfig配置工具
[root@localhost ~ ] # chkconfig --list network(查看network服務在當前運行級別中的狀態、如果不指定具體服務、顯示所有)
[root@localhost ~ ] # chkconfig --level 35 network on或off(指定network服務在3、5運行級別中的狀態on或者off)

進程管理

一:查看進程

1.ps——查看靜態進程統計信息

a:顯示當前終端下的所有進程信息,包括其他用戶
u:使用以用戶為主的格式輸出進程信息
x:顯示當前用戶在所有終端下的進程信息
-e:顯示系統內的所有進程信息
-l:使用長格式顯示進程信息
-f:使用完整的格式顯示進程信息
用法習慣:ps aux或ps -elf

2.top——查看進程的動態信息
按P根據cpu排序、M內存排序、N啟動時間排序、q退出

3.pgrep——查詢進程信息
用於查詢指定進程
例:查詢進程名中包含“log”的進程ID號、列出進程名
[root@localhost ~ ] # pgrep -l "log"
例:查詢由用戶teacher(用-U)在tty1終端上(-t)運行的進程的PID號,列出對應的進程名
[root@localhost ~ ] # pgrep -l -U teacher -t tty1

4.pstree——查看進程樹
以樹型結構顯示、結合-p顯示PID號、-u列出用戶名、-a列出完整的命令
[root@localhost ~ ] # pstree [-aup]
例:列出由用戶teacher打開的進程及子進程的樹結構信息
[root@localhost ~ ] # pstree -ap teacher

二:控制進程

1.啟動進程(手工啟動、預定計劃調度啟動)

手工啟動包括前台啟動和後台啟動、大多數的命令都是在前台運行的、可以使用Ctrl+Z將前台進程掛起到後台、但是調入到後台之後就暫停了!

[root@localhost ~ ] # jobs -l(當前終端中後台進程任務)
[root@localhost ~ ] # fg 1(將PID為1的進程重新調入到前台)

2.終止進程(kill、killall、pkill)

⑴kill——需要制定進程的PID號作為參數!結合-9選項可以強制殺死進程!
⑵killall——通過指定進程名作為參數、也可結合-9強制結束進程
⑶pkill——可以根據進程名、運行該進程的用戶、進程所在的終端等多種屬性(-U指定用戶、-t指定終端)



本文出自 “天道酬勤-常雙陽” 博客
Copyright © Linux教程網 All Rights Reserved