halt
コマンドとshutdown
コマンドの違いは何ですか?
通常、 shutdown
コマンド を使用します。シャットダウンまたはリブートの前に時間遅延と警告メッセージを許可します。これは、マルチユーザーシェルサーバーのシステム管理にとって重要です。ユーザーにダウンタイムを事前に通知できます。
そのため、shutdownコマンドを次のように使用して、コンピューターをすぐに停止/オフにする必要があります(少なくともLinuxおよびFreeBSDの場合)。
shutdown -h now
または、カスタムの30分の事前警告で再起動するには:
shutdown -r +30 "Planned software upgrades"
遅延後、shutdown
は init
にランレベル0(停止)または6(再起動)に変更するよう指示します。 (-h
または-r
を省略すると、システムはシングルユーザーモード(ランレベル1)になり、ほとんどのシステムプロセスが強制終了されますが、実際にはシステムが停止するわけではありません。管理者は、 rootとしてログインしたままにします。)
システムプロセスが強制終了され、ファイルシステムがアンマウントされると、システムは自動的に停止/電源オフまたは再起動します。これは halt
またはreboot
コマンド を使用して行われます。これにより、変更がディスクに同期され、実際の停止/電源オフまたは再起動が実行されます。
Linuxでは、システムがシャットダウンプロセスをまだ開始していないときにhalt
またはreboot
を実行すると、目的のアクションを直接実行するのではなく、shutdown
コマンドが自動的に呼び出されます。ただし、 FreeBSDなどのシステム の場合、これらのコマンドは最初に wtmp
にアクションを記録し、次にすぐにプロセスを強制終了したり、ファイルシステムをアンマウントしたりせずに、停止/再起動を自分で実行します。
1980年代、BSDにはhalt
、reboot
、およびshutdown
がありました。 System 5 UNIXには、BSD互換ツールセットがありました。しかし、ネイティブには独自の異なるshutdown
コマンドがありました。 halt
またはreboot
がまったくありませんでした。 (一部のSystem 5バリアントには、SCO XENIXのhaltsys
のようなものがありました。)
BSDのhalt
コマンドとreboot
コマンドは、低レベルで徹底的で即時的でした。 considerate BSDシステムをシャットダウンする方法は、shutdown
コマンドでした。これにより、予期されるすべてのことが実行されました。ユーザーへのwall
メッセージ、サービス強制終了、ログエントリの書き込み、ログインの無効化など。
BSDの大部分は、「shutdown
execs halt
/reboot
」という受け止められた知恵が起源であり、後者は慎重に使用されることでした。 halt
/reboot
は便利な省略形であり、それ以上のものではないという反対の習慣を人々が知ったのはSystem 5の世界でした。「BSD互換パッケージ」の_/usr/ucb/halt
_は、実際には_shutdown -h
_とは異なります。彼らはどちらも_init 0
_をやってしまいました。
halt
。 1982-05-11。 4.2BSDマニュアル。haltsys
。 2005年6月3日。 SCO OpenServerマニュアル。今日、私たちはさまざまな可能なシステム管理ツールセットを持っています。 BSDには、1990年代に起こりうるAT&Tismsが一掃されたとしても、依然としてツールセットがあります。 Miquel van Smoorenburgは1992年にLinux init
+ rc
とそれに関連するツールを(再)書きました。 UNIX System 5のソフトウェア(そしてinit
だけではありません)。 systemd 、 pstart 、および nosh もあり、それぞれに独自の実装のhalt
、reboot
、fasthalt
、fastboot
など。
ツールセットも成長し、変更されました。現在、poweroff
コマンドがあります。1980年代のオペレーティングシステムには存在しません。ほとんどの現代的なマシンの中央処理装置には、電源を制御する方法がなかったためです。特にLinuxツールセットはBSDコマンドを取得しています。しかし、UNIX System 5のBSD互換性ツールと同様に、それらはまったく同じように動作するわけではなく、物事は大幅にフラット化されています。
この平坦化により、halt
とshutdown
がmostlyと同じになるようになりました。ただし、正確な詳細はツールセットごとに異なり、各ツールセットのメカニズムはすべてわずかに異なります。
また、このコマンドセットが互換性オプションで非常に忙しくなり、ユーザーが_reboot --halt
_と_poweroff --reboot
_のような矛盾する命令をコンピューターに与えることができるようになり、少し恥ずかしい立場にも達しました。 nosh halt
、fasthalt
、reboot
、fastboot
、およびpoweroff
コマンドのマニュアルページ。 ☺
halt
、reboot
、poweroff
、telinit
、およびshutdown
はすべて1つのプログラムです。これは実際にはsystemd独自のsystemctl
プログラムです。これらのコマンドのさまざまなコマンドライン構文とその独自のコマンドラインパーサーはいくつかありますが、その後、内部的に1つのコードパスに集中します。 halt
とそのコマンドオプションを使用してアクションをトリガーするのと、shutdown
とそのコマンドオプションを使用して同じアクションをトリガーするのに違いはありません。
systemdはレスキューモード(systemdの人々が名前を変更したものシングルユーザーモード)をシャットダウンシステム状態と見なさず、これらのいずれにも到達できませんコマンド。オプションなしの_shutdown now
_はpoweroff
と同じです。
BSDは1980年代のセマンティクスをほとんど保持しています。したがって、halt
とshutdown
は、ツールセットではnotと同等です。 halt
とreboot
は単一のプログラムです。そして、まだ低レベルで、即時的で、抜本的です。一方、shutdown
とpoweroff
も1つのプログラムで、スケジュールされたシャットダウン、wall
メッセージの書き込み、アクションのログ記録、ログインの無効化など、思いやりのあるすべてのことを行います。
BSDツールセットでは、従来、shutdown
/poweroff
は最終的にhalt
/reboot
を呼び出して最終的なシステム状態の変更を実行していました。 (最近は正しくないことが多い)は、 "shutdown
execs halt
/reboot
"が実際にはNetBSDとOpenBSDでも引き続き有効であるという知恵を受け取りました。ただし、FreeBSD/TrueOS/DragonFlyBSDでは、_-o
_オプションが使用されている場合にのみ当てはまります。これらのBSDでは、両方これらのプログラムの通常さまざまな信号(INT
、_USR1
_、および_USR2
_)が#1を処理します。 init
はallこれらのシステムのシステム状態管理を行います。
それらすべてのオプションなしの_shutdown now
_は、halt
、reboot
、またはpoweroff
のいずれとも同等ではありません。 BSD シングルユーザーモードに移行し、そこから戻るマルチユーザーモードに移行できます。
shutdown
。 System Manager's Manual。 NetBSDマニュアルページ。 2011-11-04。reboot
、halt
。 OpenBSDマニュアルページ。 2016年9月3日。shutdown
。 FreeBSDマニュアルページ。 2016-09-21。reboot
、halt
、fastboot
、fasthalt
。 FreeBSDマニュアルページ。 2017-03-19。shutdown
。 System Manager's Manual。 DragonFlyBSDマニュアルページ。 2016年9月29日。reboot
、halt
、fastboot
、fasthalt
。 System Manager's Manual。 DragonFlyBSDマニュアルページ。 2016年9月29日。Noshシステム管理ツールセットでは、halt
、fasthalt
、poweroff
、fastpoweroff
、reboot
、およびfastboot
はすべて1つのプログラム。これは後方互換性のあるシムであり、通常は単にshutdown
、つまり受け取った知恵のoppositeにチェーンします。 _--force
_オプションは、代わりに_system-control
_にチェーンします。
そのため、このツールセットでは、halt
コマンドとshutdown
コマンド(同等のオプションを使用)の間に違いはありません(_--force
_はありません)。 "コマンドは単にshutdown
の上の薄いシムレイヤーです。
shutdown
。 noshツールセットのマニュアルページ。ソフトウェア。telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
_ noshツールセットマニュアルページ。ソフトウェア。Noshと同様に、新興のシステム管理ツールセットでは、受け取ったBSDの知恵の反対が適用されます。 halt
、reboot
、およびpoweroff
はすべて1つのプログラムであり、通常はshutdown
にチェーンされます。 _--force
_オプションを使用しない限り、reboot()
システムコール自体が呼び出されます。
そのため、このツールセットでは、halt
コマンドとshutdown
コマンド(同等のオプションを使用)の間に違いはありません(_--force
_がない)。また、オプションなしの_shutdown now
_(halt
、reboot
、またはpoweroff
はすべて、オプションを設定しているため、最終的には起動できません)により、システムはシングルユーザーモードシャットダウンするのではなく。
shutdown
(8) 。 Ubuntuのマニュアルページ。reboot
(8)、halt
(8)、poweroff
(8) 。 Ubuntuのマニュアルページ。init
+ rc
ツールセット繰り返しますが、このツールセットでは、受け取ったBSDの知恵の反対が適用され、halt
およびreboot
はshutdown
に単純にチェーンします—システムがすでに電源オフまたは「実行レベル」を停止していない限り"、その場合、これらのコマンドは実際に最終的なシステム状態の変更を実行します。 shutdown
はそのターンでinit
にチェーンします。
つまり、前者は後者を呼び出すだけなので、halt
とshutdown
の間には(システムがalready大幅にシャットダウンされていない限り)違いはありません。そして、はい、繰り返しますが、オプションなしの_shutdown now
_(halt
、reboot
、またはpoweroff
のいずれも、オプションをすべて設定しているため、最終的に呼び出すことができません)システムをシャットダウンするのではなく、シングルユーザーモードにします。
AWS EC2を使用する場合:AWSではshutdown
stopsインスタンス、halt
終了の場合。
Linuxでは、「halt」と「reboot」はシャットダウンコマンドのエイリアスです-shutdown -h
およびshutdown -r
それぞれ。一般的なシャットダウンでは、通常-hが想定されます。