書名: 樹莓派創客:手把手教你玩轉人工智能作者名: 陳佳林本章字數: 721字更新時間: 2020-11-23 16:49:26
2.4.2 新時代的開機啟動:Systemd
Systemd的特點是會并發地啟動進程。在設定好一個啟動對象后,Systemd會嘗試解決這個啟動對象的依賴關系,而不會啟動無關的進程。Systemd的配置文件在/etc/systemd/system下。需要注意的是,Systemd使用的是systemctl命令,比如:
$ sudo systemctl restart ssh
會重啟ssh服務。出于兼容性的考慮,Systemd沒有廢棄service命令,比如:
$ sudo service apache2 reload
還是可以正常工作的。
在/etc/systemd/system/multi-user.target.wants文件夾下你會發現很多像cron.service這樣的文件。通過ls命令檢查,你會發現這些鏈接指向/lib/systemd/system文件夾下的同名文件,簡單來說,它們處理了文件之間的依賴關系。接下來我們會介紹crontab:
$ sudo systemctl enable postgresql.service
這條指令創建了一個鏈接,然后postgreSQL會在系統啟動時運行。
$ sudo systemctl daemon-reload
這條指令會使這些改變對systemd立即生效。
雖然運行等級在systemd模式下已經沒有什么作用了,但是你還可以通過who-r指令來查看運行等級。
出于兼容性考慮,Systemd系統保留了init.d等腳本文件。
Systemd是一個復雜的系統,包括systemd.unit到systemd.slice等組件,這些組件都有自己的幫助頁面,如圖2-13所示。

圖2-13
Systemd能夠自動處理文件之間的鏈接關系,但有時你可能需要手動管理鏈接關系,這時就需要ln命令了。
ln命令能夠創建一個文件的鏈接,然后就可以讓一個文件出現在系統的兩個不同位置了:
$ sudo ln -s /usr/share/doc/python-numpy/THANKS.txt $ numpy-THANKS.txt
建立鏈接后,輸入“ls –l”,你會發現這是一種特別的文件(一個指向實際存儲的文件的鏈接)。編輯numpy-THANKS.txt文件,然后你會發現原本的THANKS.txt也被更改了。
另外,這里的-s代表軟鏈接。軟鏈接的特點是被鏈接的文件甚至可以不存在,特別適配可插拔的設備。
這種鏈接被稱為符號鏈接,這是因為它鏈接到的是文件的文件名,而不是文件實際的數據。
$ sudo ln /etc/bluetooth/main.conf mybluetooth.conf
以上命令生成了一個硬鏈接,相當于一個文件現在在不同的兩個位置有了兩個不同的名字,但這并不意味著這兩個是同一個文件。創建一個硬鏈接會類似于復制生成了一個新的文件,對原文件的修改不會對硬鏈接文件產生影響。