1 systemd
1.1 配置文件
/etc/systemd/system
/lib/systemd/system
/run/systemd/system
/usr/lib/systemd/user
1.2 commands
systemctl list-unit-files | grep enable
systemctl cat dlt-daemon.service
systemctl cat dlt-system.service
systemctl show dlt-daemon.service
systemctl show dlt-system.service
systemctl start dlt-recv-daemon.service
systemctl start sshd.socket
systemctl status dlt-system.service
journalctl -xe | grep xxx
dlt-receive -a localhost
1.3 dev-xxx.device
udev rules TAG+="systemd" for dev-xxx.device.
ACTION=="add|bind|change", KERNEL=="xxx", MODE="0660", TAG+="systemd", GROUP="xxx"
systemctl show dev-xxx.device --property=Before
1.4 systemd-analyze
安裝ipk
-packages/aarch64/
opkg install stress-ng_xxx.ipk
opkg install systemd-analyze_xxx.ipk
查看啟動耗時
systemd-analyze
查看每個服務的啟動耗時
systemd-analyze blame
顯示瀑布狀的啟動過程流
systemd-analyze critical-chain
顯示指定服務的啟動流
systemd-analyze critical-chain atd.service
2 ssh基于用戶/口令登錄
step 1:客戶端發起ssh請求,服務器會把自己的公鑰/etc/ssh/ssh_host*key.pub發送給用戶
step 2:用戶會根據服務器發來的公鑰對密碼進行加密
step 3:加密后的信息回傳給服務器,服務器用自己的私鑰解密,如果密碼正確,則用戶登錄成功
3 sshd
3.1 sshd.socket和sshd.service
Ubuntu的sshd服務默認是由sshd.service文件啟動的;
ARM Linux的sshd服務默認是由sshd.socket文件啟動的;
可以按照下面的方法來確認服務是如何啟動的。
systemctl status sshd.service
systemctl status sshd.socket
3.2 socket服務與service服務的異同
舊有的方式sshd.service模式會在后臺保持一個sshd的守護進程,每當有ssh連接要建立時,就創建一個新進程。
新的sshd.socket方式也是在每次要建立新的ssh連接時生成一個守護進程的實例,不過監聽端口則是交給了systemd來完成,意味著沒有ssh連接的時候,也不會有sshd守護進程運行,大部分情況下,使用sshd.socket服務更為合適。
3.3?sshd_config
mount -o remount,rw /
/etc/ssh/sshd_config
PubkeyAuthentication no
PasswordAuthentication yes
PermitEmptyPasswords yes
3.4?journalctl
/lib/systemd/system/sshd@.service
sshd@0-IP_addr:22-IP_addr:60946.service