dav*_*420 4 ubuntu-server ubuntu
我有一台运行 Ubuntu 服务器的 PC。
有时当我 ssh 进入它时,我收到一条消息,说某些软件包需要升级。
我通过运行(以 root 身份)来升级软件
aptitude update && aptitude safe-upgrade
Run Code Online (Sandbox Code Playgroud)
有时这就足够了。但有时我也需要重新启动,直到我随后通过 ssh 登录后才被告知。怎样才能早点知道?
理想情况下,我想通过运行类似的东西来升级
aptitude update && aptitude safe-upgrade &&
if aptitude needs-reboot ; then shutdown -r now ; fi
Run Code Online (Sandbox Code Playgroud)
但该aptitude needs-reboot命令不存在。我应该跑什么?
说明:
一种低于标准的方法——可能特定于 Ubuntu——是检查此文件的存在:
/var/run/reboot-required
Run Code Online (Sandbox Code Playgroud)
如果存在,则需要重新启动。
因此.bash_rc(和合作)中的 Bash 函数可以完成这项工作:
function needs_reboot {
if [ -f /var/run/reboot-required ]; then
read -p "Restart needed. Reboot? (y/N) " answer;
if [ "$answer" = "y" -o "$answer" = "Y" ]; then
reboot;
fi
else
echo "No restart";
fi
}
Run Code Online (Sandbox Code Playgroud)
这个想法从何而来?MOTD 在登录时由pam_motd进程更新,从/etc/update-motd.d目录中读取其内容。在这个目录中,有一个/etc/update-motd.d/98-reboot-required脚本(在 Ubuntu 12_04 上)检查我们的/var/run/reboot-required. 这显然是重新启动建议的决定方式。所以上面的函数只是以交互方式进行相同的检查。
我真的很想直接从 APT 获得它,但就目前而言,这有效......
| 归档时间: |
|
| 查看次数: |
4614 次 |
| 最近记录: |