1. 程式人生 > >Linux開關機及系統進程命令

Linux開關機及系統進程命令

shutdown init 常用指令

【一】Linux 系統啟動流程

技術分享圖片

【二】關於Linux開機與關機

# Default runlevel. The runlevels used are:

# 0 - halt (Do NOT set initdefault to this)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot (Do NOT set initdefault to this)

#

id:3:initdefault:

runlevel

Active

0

系統關機

1

單用戶模式

2

本地多用戶模式(無法使用遠程網絡)

3

網絡多用戶模式

4

系統保留未定義

5

帶圖形界面的網絡多用戶模式

6

系統重啟

init 命令:init + runlevel進行相應操作的切換

【三】Linux如何關閉和重啟

Linux是一個多用戶多任務的系統,關機時,需要註意一下事項:

1)觀察系統的使用狀態,如誰在線,在線的用戶在幹什麽(w)

(2)通知在線使用者關機的相關信息(可選)(wall,write)

3)使用最安全的的關機方式(執行關機命令前執行sync將內存數據寫入磁盤)

Linux系統安全關機的過程:

1)執行sync

命令將內存數據寫入磁盤;

2)關機命令下發,通知用戶關機;

3)停止系統的所有進程;

4)卸載系統掛載的設備

【四】Linux系統關機常用命令

1halt :立刻關機

2poweroff :立刻關機

3shutdown -h now 立刻關機(root用戶使用)

4shutdown -h 10 10分鐘後自動關閉

註:在使用shutdown 命令設置重啟的話,shutdown -c 將取消重啟

【五】Linux系統開機常用命令

1reboot

(2)shutdown -r now 立刻重啟(root用戶使用)

3shutdown -r 10 10分鐘後重啟

4shutdown -r 20:35

20:35時重新啟動(root用戶使用)

註:在使用shutdown 命令設置重啟的話,shutdown -c 將取消重啟

【六】系統信息和進程類命令

命令

說明

man

獲得命令的幫助手冊,如:man cp;按q鍵退出

su

切換用戶,如 su - root;"-" 表示改變用戶的環境變量

who

顯示系統中登錄的用戶

w

顯示登錄用戶的詳細信息

last

查看最近登錄系統的用戶信息

date

系統日期時間的設定,一般要結合參數-s使用

uname

查看系統的版本 ,如uname -R

reboot

重啟計算機,如reboot;shutdown -r now

shutdown

關閉計算機;如:shutdown -h now 表示停止服務後再關閉

free

查看內存和swap分區情況

ps

顯示進程信息,參數-ux為當前用戶的進程;參數-aux為所有用戶的進程,參數-ef為系統所有進程信息

uptime

顯示當前時間,系統開機運轉時間,連接數,最近1,5,15分鐘的系統負載。(1CPU 一般不超過0.8

top

查看系統CPU、內存等使用情況

kill

刪除某個進程,進程號可用ps命令獲得,如kill - 9 121

vmstat

查看虛擬內存的使用情況

nohup

將進程在用戶退出登錄後仍舊繼續執行

jobs

查看被掛起或後臺運行的進程

Ctrl + Z

進程掛起

Ctrl + C

進程終止

fg

進程恢復到前臺繼續執行

bg

進程恢復到後臺繼續執行

【七】涉及到的命令操作演示

【實戰一】 Linux 開關機

【關機】

halt :系統關閉,電源仍然工作

poweroff :關閉電源 icpi

shutdown -h:調用poweroffhalt命令

shutdown -h 0

shutdonw -h now

【重啟】

reboot

shutdown -r

shutdown -r 10

shutdown -r 20:45

(1)shutdown --help

Options:

-r reboot after shutdown

-h halt or power off after shutdown

-H halt after shutdown (implies -h)

-P power off after shutdown (implies -h)

-c cancel a running shutdown

-k only send warnings, don't shutdown

-q, --quiet reduce output to errors only

-v, --verbose increase output to include informational messages

--help display this help and exit

--version output version information and exit

(2)

[root@db01 /]# halt

Broadcast message from root@db01

(/dev/pts/0) at 14:27 ...

The system is going down for halt NOW!

3

shutdown -r now

Broadcast message from root@db01

(/dev/pts/0) at 14:35 ...

The system is going down for reboot NOW!

4

[root@db01 ~]# shutdown -h 20:30

Broadcast message from root@db01

(/dev/pts/0) at 14:36 ...

The system is going down for halt in 354 minutes!

5[root@db01 ~]# shutdown -c

^Hshutdown: Shutdown cancelled

6 shutdown -k 1 "The system is going down for maintenance in 1 minute"

Broadcast message from root@db01

(/dev/pts/0) at 14:40 ...

The system is going down for maintenance in 1 minute!

The system is going down for maintenance in 1 minute

7shutdown -t 60 -h now "The system is going down for maintenance in 1 minute"

Broadcast message from root@db01

(/dev/pts/0) at 14:41 ...

The system is going down for halt NOW!

The system is going down for maintenance in 1 minute

【實戰二】 Linux 進程管理命令

常用命令:

w

(1)[root@db01 ~]# w

14:47:11 up 4 min, 1 user, load average: 0.00, 0.02, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 10.53.110.78 14:42 0.00s 0.05s 0.01s w

註:遠程登錄pts,本地登錄tty

(2)[root@db01 ~]# w

14:50:10 up 7 min, 2 users, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 10.53.110.78 14:42 0.00s 0.04s 0.00s w

root pts/1 10.53.110.78 14:49 4.00s 0.02s 0.01s top

ps

ps -aux

(3)[root@db01 ~]# ps -aux|more

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.2 0.0 19364 1532 ? Ss 14:42 0:01 /sbin/init

root 2 0.0 0.0 0 0 ? S 14:42 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S 14:42 0:00 [migration/0]

root 4 0.0 0.0 0 0 ? S 14:42 0:00 [ksoftirqd/0]

4[root@db01 ~]# ps -aux --sort time|more ## 按照時間排序

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.1 0.0 19364 1532 ? Ss 14:42 0:01 /sbin/init

root 2 0.0 0.0 0 0 ? S 14:42 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S 14:42 0:00 [migration/0]

root 4 0.0 0.0 0 0 ? S 14:42 0:00 [ksoftirqd/0]

root 5 0.0 0.0 0 0 ? S 14:42 0:00 [migration/0]

root 6 0.0 0.0 0 0 ? S 14:42 0:00 [watchdog/0]

root 7 0.0 0.0 0 0 ? S 14:42 0:00 [migration/1]

root 8 0.0 0.0 0 0 ? S 14:42 0:00 [migration/1]

root 9 0.0 0.0 0 0 ? S 14:42 0:00 [ksoftirqd/1]

4[root@db01 ~]# ps -aux --sort pid|more ##pid排序

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.1 0.0 19364 1532 ? Ss 14:42 0:01 /sbin/init

root 2 0.0 0.0 0 0 ? S 14:42 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S 14:42 0:00 [migration/0]

root 4 0.0 0.0 0 0 ? S 14:42 0:00 [ksoftirqd/0]

root 5 0.0 0.0 0 0 ? S 14:42 0:00 [migration/0]

root 6 0.0 0.0 0 0 ? S 14:42 0:00 [watchdog/0]

root 7 0.0 0.0 0 0 ? S 14:42 0:00 [migration/1]

【註】VSZ:使用虛擬內存大小

RSS:使用實際內存大小

TTY:終端類型

STAT: R:運行進程 S:睡眠進程 I:空閑基礎 Z:僵死進程 D:不可中斷進程 T:終止進程 P:交換進程

5[root@db01 ~]# ps -A|more ##顯示所有進程

PID TTY TIME CMD

1 ? 00:00:01 init

2 ? 00:00:00 kthreadd

3 ? 00:00:00 migration/0

4 ? 00:00:00 ksoftirqd/0

5 ? 00:00:00 migration/0

6 ? 00:00:00 watchdog/0

7 ? 00:00:00 migration/1

8 ? 00:00:00 migration/1

9 ? 00:00:00 ksoftirqd/1

10 ? 00:00:00 watchdog/1

11 ? 00:00:00 events/0

6[root@db01 ~]# ps -u root |more ##查看某個用戶的進程

PID TTY TIME CMD

1 ? 00:00:01 init

2 ? 00:00:00 kthreadd

3 ? 00:00:00 migration/0

4 ? 00:00:00 ksoftirqd/0

5 ? 00:00:00 migration/0

6 ? 00:00:00 watchdog/0

7 ? 00:00:00 migration/1

8 ? 00:00:00 migration/1

9 ? 00:00:00 ksoftirqd/1

10 ? 00:00:00 watchdog/1

7

[root@db01 ~]# ps -ef|more

UID PID PPID C STIME TTY TIME CMD

root 1 0 0 14:42 ? 00:00:01 /sbin/init

root 2 0 0 14:42 ? 00:00:00 [kthreadd]

root 3 2 0 14:42 ? 00:00:00 [migration/0]

root 4 2 0 14:42 ? 00:00:00 [ksoftirqd/0]

root 5 2 0 14:42 ? 00:00:00 [migration/0]

root 6 2 0 14:42 ? 00:00:00 [watchdog/0]

root 7 2 0 14:42 ? 00:00:00 [migration/1]

root 8 2 0 14:42 ? 00:00:00 [migration/1]

root 9 2 0 14:42 ? 00:00:00 [ksoftirqd/1]

root 10 2 0 14:42 ? 00:00:00 [watchdog/1]

UID :用戶ID

PID:進程ID

PPID:父進程ID

C0級,沒有子進程

STIME:運行時間

TTY:終端類型

8

[root@db01 ~]# ps -ef|grep sshd

root 1508 1 0 14:42 ? 00:00:00 /usr/sbin/sshd

root 1693 1508 0 14:42 ? 00:00:00 sshd: root@pts/1,pts/2

root 1884 1848 0 15:08 pts/2 00:00:00 grep sshd

9)根據CPUmem排序 (前5行)

[root@db01 ~]# ps -aux --sort -pcpu,-pmem|head -5

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1767 0.1 0.0 15036 1212 pts/1 S+ 14:50 0:01 top

root 1 0.0 0.0 19364 1532 ? Ss 14:42 0:01 /sbin/init

root 2 0.0 0.0 0 0 ? S 14:42 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S 14:42 0:00 [migration/0]

10)顯示父進程和子進程

[root@db01 ~]# ps -C sshd #查看進程

PID TTY TIME CMD

1508 ? 00:00:00 sshd

1693 ? 00:00:00 sshd

[root@db01 ~]# ps -p 1508 -L #查看進程有多少線程

PID LWP TTY TIME CMD

1508 1508 ? 00:00:00 sshd

[root@db01 ~]# ps --ppid 1693 #查看進程的子進程

PID TTY TIME CMD

1737 pts/1 00:00:00 bash

1848 pts/2 00:00:00 bash

kill命令

SYNOPSIS

kill [-s signal|-p] [--] pid...

kill -l [signal]

1kill的信號

[root@db01 ~]# kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

15) SIGTERM

[root@db01 ~]# ps -ef|grep top

root 2011 1984 0 15:20 pts/1 00:00:00 top

root 2015 1921 0 15:20 pts/0 00:00:00 grep top

[root@db01 ~]#

[root@db01 ~]#

[root@db01 ~]# kill -9 2011

[root@db01 ~]# ps -ef|grep top

root 2017 1921 0 15:21 pts/0 00:00:00 grep top

[root@db01 ~]#

【註】進程號為1不能kill,否則系統不能使用

nohup命令

1[root@db01 ~]# nohup vmstat 2>1 1.log & ##在後臺運行

Ctrl + Z

jobs

Ctrl + C


Linux開關機及系統進程命令