『那我們來整理一下,systemctl吧。』
指令 | 簡述 |
---|---|
systemctl status | 查看目前所有狀態 |
systemctl status units-name | 查看某個unit目前狀態 |
systemctl enable units-name | 將某個unit設定開機時起動 |
systemctl disable units-name | 將某個unit設定為開機時不起動 |
systemctl --failed | 顯示執行時失敗的unit |
systemctl start units-name | 起動某個unit |
systemctl stop units-name | 停止某個unit |
『常用的,差不多就這樣,資訊長,這樣報告,可以嗎?』
「你那個什麼0什麼6的,我要聽那個...」
『那就再看這個吧...前幾天有提到的。systemd 裡面,最小的單位是unit,每一個unit可能是一個服務,一個mount device,然後unit上面,有一個類似群組但不是群組的集合體,稱為target,我們可以宣告,我們使用的服務,要放到那一個target或是...試給妳看的,重開機和關機時,發LINE和傳送檔案,就是我做了相關的宣告。』
before systemd | 簡述 | after systemd |
---|---|---|
run level 0 | 關機時的程序 | powerof.target |
run level 1 | 單人模式開機程序 | resuce.target |
run level 2 | 文字多人開機模式 | multi-user.target |
run level 3 | 文字多人開機模式 | multi-user.target |
run level 4 | 文字多人開機模式 | multi-user.target |
run level 5 | 圖形多人開機模式 | graphical.target |
run level 6 | 重新開機 | reboot.target |
『另外,我們可以透過,systemctl get-default,查看我們的Linux開機後,是進入那一種開機模式。請問,這樣可以嗎?』
「大概有點進入狀況...那...我還是不懂...像xrdp是怎麼起動的?」
『xrdp哦? 我們先用systemctl status xrdp 看一下它的狀態,這裡,有看到嗎? 這一串...Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled;』
「有啊...」
『簡單的先講,enabled...請解釋。』
「開機時,會起動的是enabled。』
『是的,那systemd最小的單位是unit,但OS最小的單位是檔案,所以xrdp 這個 unit都會對應到一個檔案,讓systemd可以載入它後運作,就是這個檔案。
/usr/lib/systemd/system/xrdp.service』
「哦哦......好,繼續。」
『我們來看一下這個內容吧。』
#/usr/lib/systemd/system/xrdp.service
Description=xrdp daemon
Documentation=man:xrdp(8) man:xrdp.ini(5)
Requires=xrdp-sesman.service
After=xrdp-sesman.service
[Service]
EnvironmentFile=/etc/sysconfig/xrdp
ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS --nodaemon
[Install]
WantedBy=multi-user.target
『然後,我們直接看...重開機時,會發LINE的那個unit...看到了嗎,就在這個畫面裡。』
「等一下...你那個發LINE的功能,也是一個unit?」
『不然是ghost? 當然是unit...』
「你那個sayhi.service是什麼? 為什麼取這個名字?」
『大隱隱於市啊,資訊長,那個檔案,五天前,就在妳的CentOS裡了,就在/etc/systemd/system裡 ,妳看這個檔案顯示白色,與眾不同耶。』
「你一直在欺負我,對不對?」
『資訊長,我一直在讓,妳不要被妳的十萬大軍欺負...』
「繼續吧,我看一下你那個檔案...」
『這個簡單講就是...我設定了一個unit,描述是 Test reboot, shutown, halt script,這個unit會等待shutdown.target reboot.target halt.target 這三個之一起動後,才會起動我建的unit。
我設定的unit起動後,就會去執行我宣告的sciprt,另外,如果我對這個unit是設定enable的話,systemd 會幫我把defaultss.service這個檔案,link到 halt.target reboot.target shutdown.target 這三個資料夾裡。
只是,如果我不設定為enable, 這個unit永遠不會被起動,我的sayhi.service,就變電磁垃圾了。』
「所以,你講半天,根本沒講到重點,重點是那個你去執行的那個script吧...」
『就看怎麼評斷,重中之輕和重中之重,而且script不就那樣,讀取shadow,分割內容後,送出。』
「不管啦...回到apache,我要可以看到網頁...」
『報告資訊長,好的,另外...我還是準備了一個,把Kali Linux安裝在Android手機裡的影片...有空,妳就先看一下吧,我出去吹吹風啊...等等回來...』
(待)
工程師們的宇宙
這個世界上,有一個叫做工程師們的宇宙,這個宇宙的時間序,大概是這樣的,
2010年_誰溫暖了工程師
2010年_IT人在廚房
2010年_FB不浪漫
2012年_工程師不哭
2012年_工程師復愁記
2017年_為了明日的重開機
2018年_有間咖啡店
2018年_心洞年代
2018年_A的A次方
2019年_那個夜裡的資安
2019/09/16 SunAllen