【发布时间】:2019-07-10 20:44:13
【问题描述】:
我有一个 bash 脚本来在 linux 中安装一些东西。安装脚本需要以 root 身份运行。安装过程会重新启动两次,并在每次重新启动后继续。
我设法操纵 crontab 来添加/删除作业以使其正常工作。但是,如果安装脚本已完成,我希望通知用户,以便他/她可以等到最后一次重新启动完成。
我能想到的唯一解决方案是在打开的终端中运行 crontab 作业,这样用户就可以看到安装仍在进行中。
问题 1:这是一个好的解决方案吗?有什么选择吗?
问题 2:如果解决方案很好,我如何确保终端已打开并且 crontab 作业在该终端中运行?
【问题讨论】:
-
用户希望如何被“告知”?文本消息、GUI 弹出窗口、终端中的消息?继续安装时系统是否引导至多用户?继续安装时 X 服务器是否正在运行?需要通知的用户是坐在控制台还是远程?
-
需要重新启动 - 更不用说两次了! - 似乎很不Unixy。你真的确定没有办法避免至少一次重启吗?您实际上想解决哪个问题? (用一个通用的内核替换一个以某种方式受到损害的内核,然后安装一个不太通用的内核来替换它,这几乎是我能想象到的唯一一种甚至远程有意义的情况。除非它真的没有。)
-
@tripleee 我正在树莓上安装软件。我首先对操作系统进行升级/更新。我安装golang。然后我使用 go install ./... 安装软件,这可以在不重新启动的情况下完成吗?
-
@MFnx 绝对不需要任何重新启动,这是经典的,最坏的情况是您需要重新加载终端环境。
-
如果升级内核,最终将需要重新启动。但是,让安装用户在方便的时候手动执行是一个经过充分验证的标准解决方案。也许在安装结束时显示一条消息。从
cron运行这些都没有意义。