關機時彈出 CD
好的,我有一個簡單的問題:我有一張 live CD,我希望在電腦重新啟動或停止時彈出 CD。
執行
/usr/bin/eject -m
使 CD 彈出就好了…問題是,正如您所料,這會導致作業系統崩潰,因為它現在無法讀取任何文件。所以重啟永遠不會發生,因為/sbin/reboot
無法訪問。(我嘗試reboot --help > /dev/null
在重新啟動之前立即執行,但仍有其他文件仍然無法讀取……)總之,看來我需要讓彈出成為最後發生的事情。所以它似乎
systemd
是我需要玩的小狗……但我已經浪費了我生命中的幾個小時戳和刺激它,無論我做什麼,它永遠不會,在任何情況下,實際上彈出CD。我不知道為什麼。我嘗試了十幾種不同的呼叫方式eject
,但沒有任何反應。誰能告訴我最簡單的跑步方式
eject
?(我想之後umount.target
會是明智的……)
最終我的同事發現了以下文章:
http://lists.freedesktop.org/archives/systemd-devel/2012-September/006573.html
總之,我創建了一個名為的文件
/lib/systemd/system/eject.service
,其中包含[Unit] Description=Eject the DVD Before=final.target After=shutdown.target DefaultDependencies=no [Service] Type=oneshot ExecStart=/usr/bin/eject -m StandardInput=tty-force StandardOutput=inherit StandardError=inherit [Install] WantedBy=shutdown.target
我還必須跑去
systemctl enable eject.service
讓它真正做任何事情。但現在systemd
在關機前彈出 CD,完全符合我的要求。…不幸的是,當它無法找到彈出 CD 的其余文件時,作業系統仍然會出現段錯誤。我嘗試調整上面的文件,這樣我們就有了
After=unmount.target
,你會認為它在文件系統被解除安裝後執行腳本。但是不,它仍然存在段錯誤。看起來我將不得不弄清楚如何在啟動時將 Live CD 映像複製到 RAM 中 - 但這是另一個問題……