F O R T C R E S

home back

Vine Linux 5.1 でのシャットダウンと電源断

● 状況

シャットダウンのため

# shutdown -h now

を実行しても電源断まではできない。

● 原因

コマンド検索パスに /sbin が含まれないか /usr/bin よりも後にある場合は /sbin/shutdown ではなく

# /usr/bin/shutdown -h now

が実行されて電源断まではできない。

/usr/bin/shutdown はスクリプトで

/usr/bin/shutdown
    オプションに -h -p -r の何れかが含まれていてこれ以外の
    オプションが(now を除いて)無い場合
        shutdown -h ---> /usr/bin/halt    を実行
        shutdown -p ---> /usr/bin/halt -p    を実行
        shutdown -r ---> /usr/bin/reboot    を実行
    オプションに -h -p -r 以外が含まれたら(now は無関係)
        /sbin/shutdown 全てのオプション    を実行
    オプションに -h -p -r が無ければ
        /sbin/shutdown 全てのオプション    を実行

/usr/bin の halt, poweroff はラッパー consolehelper を通じて それぞれ /sbin の halt, halt -p を実行するようになっている。 コマンド検索パスに /sbin が入っていないか /usr/bin よりも後にある場合、 実際に実行されるコマンドは次のようになる。

shutdown -h now -> /usr/bin/halt -> consolehelper -> /sbin/halt
halt -> /usr/bin/halt -> consolehelper -> /sbin/halt
poweroff -> consolehelper -> /sbin/poweroff -> /sbin/halt -p

/sbin/halt は -p オプションを付けないと電源断までは行わない。

● 対策

shutdown で電源断まで行うようにするためには、

# /sbin/shutdown -h now
# /usr/bin/shutdown -p now

# /sbin/halt -p
# /usr/bin/halt -p

# /sbin/poweroff
# /usr/bin/poweroff

コマンド検索パスに /sbin が入っていないか /usr/bin よりも後にある場合は

# shutdown -p now
# halt -p
# poweroff

コマンド検索パスに /sbin が入っていて /usr/bin よりも前にある場合は

# shutdown -h now
# halt -p
# poweroff


home back