关机时弹出 CD

关机时弹出 CD

好的,我有一个简单的问题:我有一张 Live CD,我希望在计算机重新启动或停止时弹出 CD。

执行后/usr/bin/eject -mCD 弹出就好了...问题是,正如您所料,这会导致操作系统崩溃,因为它现在无法读取任何文件。所以重启永远不会发生,因为/sbin/reboot无法访问。 (我尝试reboot --help > /dev/null在重新启动之前执行,但仍有其他文件仍然无法读取......)

总之,看来我需要使弹出成为最后一件事那个会发生。看来这systemd就是我需要玩的小狗...但我确实浪费了小时我一生都在戳它、戳它,无论我做什么,它在任何情况下都永远不会真正弹出 CD。我不知道为什么。我尝试了十几种不同的调用方式eject,但什么也没发生。

谁能告诉我最简单的跑步方法eject? (我想之后umount.target才是明智的......)

答案1

最终我的同事找到了以下文章:

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 中 - 但这完全是另一个问题......

答案2

以下内容可能对您有帮助:

  • 在 /etc/init.d/halt.local 添加弹出命令

  • 您还可以查看 /etc/init.d/sculpture 模板并自定义它以添加一些输出,例如系统关闭、按任意键弹出 cdrom 等。

  • 查看 /etc/init.d 中链接到运行级别目录 /etc/rc0.d 的脚本(暂停)。

答案3

ubuntu可以用eject -m; reboot -f

答案4

创建一个名为eject.shutdown的文件,具有可执行权限/usr/lib/systemd/系统关闭/

#!/bin/sh
/usr/bin/eject -T

来源:系统关闭逻辑

也可以看看:关机前弹出 CD

相关内容