質問: コマンドラインから、マシンの再起動が必要かどうかを確認するにはどうすればよいですか? ubuntu desktopに特定の更新(新しいカーネルなど)をインストールすると、再起動が必要であるという通知が表示されます(lucidでは、ログアウトアイコンが赤に変わります)。ubuntu serverの再起動が必要かどうかをコマンドラインから確認するにはどうすればよいですか?/etc/motdで「システムの再起動が必要」をgrepできましたが、よりエレガントなソリューションが欲しいです。また、古いリリースで機能するソリューションが必要です。ハーディ(8.04 lts)。
回答: 貧乏人の解決策:#!/bin/bash default=$(sed -n 's/^default[ ]*\([0-9][0-9]*\).*/\1/p' /boot/grub/menu.lst | tail -1) if [ "$default" = "" ]; then default=0; fi want=$(sed -n 's/^kernel[ ]*\/boot\/vmlinuz-\([^ ]*\).*/\1/p' /boot/grub/menu.lst | sed -n "$((default+1))p") running=$(uname -r) if [ "$running" = "$want" ] then : ok, do nothing else echo "running $running, want $want. reboot required." fi (注意:内部に空白がある3つの角括弧の場合は、「[<space> <tab>]」である必要があります。)