2017年2月26日 星期日
ezgo 使用者還原改寫為 systemd 系統
因為從原本的 SysV 改成 systemd,結果以前的使用者還原 script 全部要改寫。
研究了一下 systemd 的運作,終於改寫成功。
使用者還原:
產生兩個檔案:
/lib/systemd/system/multi-user.target.wants/recover_ezgo.service
內容:
[Unit]
Description=Recover user home contents #systemd service 的描述
Before=sddm.service #因為使用者家目錄的修改要在啟動 sddm 前做好,否則會出大亂子
[Service]
Type=oneshot
ExecStart=/usr/share/ezgo/recover/restore_ezgo.sh #restore_ezgo.sh 是依據使用者選擇的帳號而產生
[Install]
WantedBy=multi-user.target
然後把它連結到 /etc/systemd/system/multi-user.target.wants/ 裡。這樣開機時就會在 sddm 執行 /usr/share/ezgo/recover/restore_ezgo.sh。
另外一個檔就是真正執行還原的,也就是 restore_ezgo.sh。裡面就是清掉家目錄的內容,再將先前備份的檔案放回去。
還原系統初始值:將家目錄整個砍掉重建,再把 /etc/skel 裡的內容放進去。
一樣放在開機時 sddm 執行前:
systemd 的部份要建立一個檔案: /lib/systemd/system/multi-user.target.wants/skel_ezgo.service
[Unit]
Description=Recover factory default for ezgo users
Before=sddm.service
[Service]
Type=oneshot
ExecStart=/usr/share/ezgo/recover/skel_ezgo.sh
[Install]
WantedBy=multi-user.target
一樣把它連結到 /etc/systemd/system/multi-user.target.wants/ 中。這樣就能在 sddm 前執行。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言