進程管理工具

進程管理工具

kill


man 7 signal

1) SIGHUP: 無須關閉進程而讓其重讀配置文件

kill -1 進程編號

2) SIGINT: 中止正在運行的進程;相當於Ctrl+c

9) SIGKILL: 殺死正在運行的進程

再生進程 kill -9 殺不掉

15) SIGTERM:終止正在運行的進程

kill -15/或不寫(默認) +進程編號。正常終止進程 

18) SIGCONT:繼續運行

19) SIGSTOP:後臺休眠


pidof +指令 可以查詢該指令活動進程的編號

blob.png

前後臺的切換(fg,bg,Ctrl z)

想要操作在後臺運行只需在後面加 &符號(交互式的指令如vim不能有效)

blob.png

jobs 看後臺命令的進程代號數字

blob.png

fg 1 關掉後臺數字1的進程

blob.png

Ctrl z 將前臺進程放到後臺休眠

blob.png

jbos

blob.png

bg 1 將後臺休眠進程放到後臺運行

blob.png

ps aux  查看程序進程編碼

kill -18 +進程編號  後臺運行

kill -19 +進程編號  後臺休眠

kill -9  +進程編號  終止進程

QQ圖片20160911175223.png

pkill -t pts/2  關閉指定用戶的進程(默認是15指令)

blob.png

blob.png另一個終端的進程停止了

pkill -9 -t pts/2  (強制終止)

blob.png如果使用9強制指令會發現指定的終端連鏈接都掉了。,

pkill -u zczx 可以刪除指定用戶身份運行的進程


-SIGNAL

-u uid: effective user,生效者

-U uid: real user,真正發起運行命令者

-t terminal: 與指定終端相關的進程

-l: 顯示進程名

-a: 顯示完整格式的進程名

-P pid: 顯示父進程爲此處指定的進程的進程列表


nohup

nohup ping 127.0.0.1 &  可以使進程繼續在後臺運行,但是已經不能用jobs查看到進程代碼數字,所以調不會去前臺,只能用kill關閉

screen;COMMAND

還能用screen 回話功能繼續調用進程,這個只要一鏈接回去自動默認調用回前臺

blob.png

blob.png

blob.png


順序執行:f1.sh;f2.sh;f3.sh

並行執行:(f1.sh&);(f2.sh&);(f3.sh&) 同時開多個子進程同時運行各腳本進程

{ f1.sh& f2.sh& f3.sh& }

用ps aux 查看進程編號

用kill 指令終止


nice

nice -n -10 ping 10.1.0.1 指定進程的nice優先級別(-20到20)

blob.png

已經在運行的進程默認是0,也可以不停止調優先級別

ps axo pri 查看後臺進程權限

blob.png

renice -n -10 進程編號  

調整優先級別


任務計劃

linux任務計劃,週期性任務執行

分爲一次性和週期性

at 一次性

batch: 系統會自動選擇空閒時間運行

cron 週期性


at 一次性

rpm -q at 可以查詢at服務是否安裝

blob.png

/var/spool/at 有新建的任務會在這裏

blob.png

blob.png

/etc/rc.d/atd status 查詢服務是否啓動


chkconfig --list atd 可以查看服務是否開機啓動,看5模式是否啓動

blob.png 

chkconfig --level 5 atd on

runlevel 啓動模式

(5,6模式的時候使用。)

blob.png

7版本使用:

systemctl status atd 查看服務器是否啓動

systemctl start atd 

blob.png

at -V 查看版本

blob.png

at 10:12 指定時間

wall at job is starting 廣播

touch /root/at.log

echo "at echo"

用Ctrl D 結束(如果按了Ctrl C 就清空了)

blob.png

如果有echo的標準輸出,不會在屏幕上輸出,會自動轉發成郵件給你


atq 可以查看到有多少個指定任務

blob.png

at -l 效果一樣

blob.png

at -d 其實等於直接刪除文件 ,/var/spool/at

blob.png


at 9:00 2016-9-10-1 可以指定時間,年月日

wall holiday     


-V 顯示版本信息:

-l: 列出指定隊列中等待運行的作業;相當於atq

-d: 刪除指定的作業;相當於atrm

-c: 查看具體作業任務

-f /path/from/somefile:從指定的文件中讀取任務

at 10:30 -f /root/at.sh

at 10:30 < /root/at.sh

at 10:30 <<eof

touch f1

eof

-m:當任務被完成之後,將給用戶發送郵件,即使沒有標準輸出


HH:MM [YYYY-mm-dd] 10:30 2016-10-1

noon, midnight, teatime(4pm) 04pm March 17

tomorrow      10:30 tomorrow

now+#{minutes,hours,days, OR weeks}

now + 5minutes   04pm + 3 days


at任務

vim /etc/at.deny (黑名單)

zczx 只需要加入用戶的名字,就可以禁止該用戶使用at。

vim /etc/at.allow 白名單(比黑名單優先)

如果設置了白名單,at只能是白名單有名字的用戶才能使用了,即使不在黑名單中。默認這個文件是不存在的,需要自己建立。

如果兩個文件都刪了,除了管理root用戶,其他用戶一樣使用不了。


cron 週期性

crond

systemctl status crond 7版本 查看服務是否啓動

blob.png

service crond status 6版本

blob.png

rpm -ql cronie

blob.png

chkconfig --list crond 可以查看服務是否開機啓動

blob.png

rpm -ql cronie-anacron 輔助包 用於移動端和家用機

blob.png

系統cron任務:系統維護作業

/etc/crontab

blob.png

用vim 可以增加計劃任務

# Example of job definition:

# .----------------minute (0 -59)

# | .-------------hour (0 -23)

# | | .----------day of month (1 -31)

# | | | .-------month (1 -12) OR jan,feb,mar,apr...

# | | | | .----day of week (0 -6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

例如:晚上9點10分運行echo命令;

10 21 * * *centos /bin/echo "Howdy!"


離散值 1,10,20 2,4 1-10,20-28 

1,10,20分鐘 2,4小時 1到10,20-28號

*/10 每10分鐘一次

@rebootRun  每次重啓之後

@yearly 每年

@annually 

@monthly  每個月

@weekly  每星期

@daily 每天

@hourly 每小時

cd /etc/cron.d

cat ohourly 可以查看到格式

blob.png

系統的計劃任務:

/etc/crontab

/etc/cron.d/ 配置文件

/etc/cron.hourly/ 腳本

/etc/cron.daily/腳本

/etc/cron.weekly/腳本

/etc/cron.monthly/腳本


systemctl systemd-tmpfiles-setup 7版本實現清除臨時文件


/etc/cron.daily/tmpwatch定時清除臨時文件。6版本

blob.png

日誌:/var/log/cron


可以用cat /var/log/cron 查看日誌中的週期指令

blob.png

crontab -e 新建一個週期任務

* * * * * echo zczxcron

blob.png

0 12 * * * wall class over 12點發送廣播

blob.png

cd /var/spool/cron/ 保存會文件會在這個目錄中

blob.png

通過 crontab 的特殊權限普通用戶可以讀寫。

crontab -r 刪除計劃任務

所新建的文件名字,就是用戶名字命名。

文件名字要和所有者配對,任務纔會生效。

blob.png發現連配置文件都一起刪除

crontab

-l: 列出所有任務;

blob.png

-e: 編輯任務;

-r: 移除所有任務;

-i:同-r一同使用,以交互式模式移除指定任務

-u user: 僅root可運行,指定用戶管理cron任務


/etc/cron.{allow,deny}白名單、黑名單需自己創建

功效與at一樣。


一次性作業使用at

重複性作業使用crontab

建立任務   at time   crontab -e

列出任務表 at -l     crontab -l

查看具體任務 at -c jobnumN/A

刪除任務   at -d jobnum crontab -r

編輯任務   crontab -e

沒有被重定向的輸出會被郵寄給用戶

根用戶能夠修改其它用戶的作業


對於cron任務來講,%有特殊用途;如果在命令中要使用%,則需要轉義;不過,如果把%放置於單引號中,也可以不用轉義


mandb 創建數據庫 7版本使用

blob.png

man 5 crontab

blob.png

run-parts DIR可以運行指定目錄下所有的可執行文件



anacron 6版本之後都取消了這個服務,讓crond服務



系統啓動和內核管理


linux 組成

Linux: kernel+rootfs

kernel: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能


GNU/linux


內核設計流派:

單內核(monolithic kernel):Linux

把所有功能集成於同一個程序

微內核(micro kernel):Windows, Solaris

每種功能使用一個單獨子系統實現


Linux內核特點:

支持模塊化:.ko(內核對象)

如:文件系統,硬件驅動,網絡協議等

支持內核模塊的動態裝載和卸載

(模塊化)


組成部分:

核心文件:/boot/vmlinuz-VERSION-release

ramdisk:輔助的僞根系統

CentOS 5: /boot/initrd-VERSION-release.img

CentOS6,7: /boot/initramfs-VERSION-release.img

模塊文件:/lib/modules/VERSION-release


先查找內核,再啓動驅動

CentOS6,7: /boot/initramfs-VERSION-release.img 誤刪了這個文件可以通過開機進去救援系統

blob.png

chroot /mnt/sysp_w_picpath 切換回根目錄

cd /boot

mkinitrd initramfs-`uname -r`.img `uname -r` 重新生成 (5,6版本使用)


Cento5,6

POST加電自檢》MBR引導》GRUB》加載內核

centos6啓動流程

1.加載BIOS的硬件信息,獲取第一個啓動設備。

2.讀取第一個啓動設備MBR的引導加載程序(grub)的啓動信息

3.加載核心操作系統的核心信息,核心開始解壓縮,並嘗試驅動所有的硬件設備。

4.核型執行init程序並獲取運行信息。

5.Init執行/etc/rc.d/rc.sysinit文件。

6.啓動核心的外掛模塊(/etc/modprobe.conf)。

7.Init執行運行的各個批處理文件(scripts).

8.Init執行/etc/rc.d/rc.local.

9.執行/bin/login程序,等待用戶登錄。

10.登錄之後開始以Shell控制主機。


bootloader: 引導加載器,引導程序

rpm -q grub 5,6版本是0.97

rpm -q grup2 7的版本直接成爲2


kernel:

自身初始化:

探測可識別到的所有硬件設備

加載硬件驅動程序(可能藉助於ramdisk加載驅動)

以只讀方式掛載根文件系統

運行用戶空間的第一個應用程序:/sbin/init


系統初始化:

POST --> BootSequence(BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs(只讀) --> init(systemd)


/etc/.rc.sysinit 

/etc/rc.d/rc.sysinit: 系統初始化腳本

(1) 設置主機名

(2) 設置歡迎信息

(3) 激活udev和selinux

(4) 掛載/etc/fstab文件中定義的文件系統

(5) 檢測根文件系統,並以讀寫方式重新掛載根文件系統

(6) 設置系統時鐘

(7) 激活swap設備

(8) 根據/etc/sysctl.conf文件設置內核參數

(9) 激活lvm及software raid設備

(10) 加載額外設備的驅動程序

(11) 清理操作

cd /etc/rc.d

K爲頭的不運行,S爲頭的運行。決定服務是否啓動。

chkconfig --list 可以查看什麼服務在什麼模式下是否運行

blob.png

chkconfig atd on 默認開啓2,3,4模式

進入 /etc/init.d 下建立腳本

服務腳本

#!/bin/bash

#chkconfig:35 88 22 (3,5模式on 開啓S88 關閉K22)

#description:texst service

case $1 in

start)

echo testsrv staring

;;

stop)

echo testsrv stop 

;;

status)

echo testsrv status

;;

*)

echo 'testsrv start|stop|status'

;;

esac

記得寫完要用chmod +x 給予執行權限

blob.png


chkconfig --add testsrv 增加服務板塊


service testsrv start  服務開啓

stop       關閉

blob.png

chkconfig --del testsrv 刪除服務板塊

blob.png

who -r 可以看現在是什麼模式

blob.png

ntsysv

ntsysv --level=2

blob.png

yum -y xinted


service xinted status  服務狀態查詢

  start   服務開啓

vim /etc/xinetd

chkconfig telnet on

非獨立服務要xinetd 監聽

建立於xineted 的運行

7版本全部服務都默認不啓動,當需要一個服務就激活一個服務,這樣能節省更多的資源。端口和服務獨立開了。舊版本服務和端口是綁定關係。


破解5,6口令

進入按a模式

1 s S 單用戶,登陸進去就是root用戶

passwd 修改回密碼 不過只能在本機使用。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章