停止コマンドとシャットダウンコマンドの違いは何ですか?


回答:


77

一般に、shutdownコマンドを使用します。シャットダウンまたは再起動の前に遅延と警告メッセージを許可します。これは、マルチユーザーシェルサーバーのシステム管理にとって重要です。ダウンタイムの事前通知をユーザーに提供できます。

そのため、シャットダウンコマンドを次のように使用して、コンピューターを直ちに停止/スイッチオフする必要があります(少なくともLinuxおよびFreeBSDで)。

shutdown -h now

または、カスタムの30分前警告で再起動するには:

shutdown -r +30 "Planned software upgrades"

遅延後、実行レベル0(停止)または6(再起動)に変更するshutdownように指示initします。(省略した-h場合、または-rシステムがシングルユーザーモード(ランレベル1)に移行することに注意してください。これにより、ほとんどのシステムプロセスが強制終了されますが、実際にはシステムが停止しません。

システムプロセスが強制終了され、ファイルシステムがアンマウントされると、システムは自動的に停止/電源オフまたは再起動します。これは、変更をディスクに同期してから実際の停止/電源オフまたは再起動を実行するhaltor rebootコマンドを使用して行われます。

場合Linuxでは、haltまたはrebootシステムがすでにシャットダウンプロセスを開始していないときに実行され、それが呼び出されますshutdown、直接その意図したアクションを実行するよりも、自動ではなく、コマンドを。ただし、FreeBSDなどのシステムでは、これらのコマンドは最初にアクションをログインしwtmp、その後プロセスを強制終了したりファイルシステムをアンマウントしたりすることなく、すぐに停止/再起動を実行します。


良い説明!

18
…しかし今は時代遅れです。systemd Linuxオペレーティングシステムでは、これらのコマンドは(systemd docoの言葉で)「互換性のみのために」存在します。そこに分離されていないhaltrebootと、shutdownお互いを呼び出すプログラム。単一のプログラムがあり、多くのコマンドラインパーサーが内部で1つのコードパスに集中しています。実行レベルもありません。シャットダウンもシングルユーザーモードにはなりません。実際、シングルユーザーモード自体の名前は変更されています。詳細については、unix.stackexchange.com / a / 196014/5132を参照してください。
JdeBP

49

過去

1980年代には、BSD系は持っていたhaltrebootshutdown。System 5 UNIXにはBSD互換性ツールセットがありました。しかし、ネイティブには、独自の異なるshutdownコマンドがありました。持っていないhaltreboot、まったくありませんでした。(System 5のバリアントには、SCO XENIXのようなものがありましたhaltsys。)

BSD haltrebootコマンドは、低レベルで、抜本的で、即時でした。BSDシステムをシャットダウンするための思いやりのある方法はshutdownコマンドで、wallユーザーへのメッセージ、正常に終了したサービス、書き込まれたログエントリ、ログインの無効化など、発生することが予想されるすべてのことを行いました。

BSDの大部分は、受け取った知恵が「shutdownexecs halt/ reboot」の起源であり、後者は注意して使用されるべきものでしたが、System 5の世界では、人々が逆の習慣を学んだのは、halt/ rebootが便利な速記であり、それ以上/usr/ucb/haltではないということshutdown -hでした。彼らは両方ともやってしまったinit 0

参考文献

今日

現在、可能なシステム管理ツールセットが数多くあります。1990年代にAT&Tismの可能性が排除されたとはいえ、BSDにはまだツールセットがあります。Miquel van Smoorenburgは1992年にLinux init+ rcとそれに関連するツールを(再)書きました。これは、実際にはUNIX System 5のソフトウェアではありませんが、「System 5 init」と呼ばれています。init)。ありsystemdに新興企業、および間食持って、それぞれが、独自の実装haltrebootfasthaltfastboot、などを。

ツールセットも成長し、変化しました。poweroff現在、1980年代のオペレーティングシステムにはないコマンドがあります。これは、ほとんどの現代のマシンの中央処理装置には電源を制御する方法がなかったためです。特にLinuxツールセットは、BSDコマンドを取得しています。しかし、UNIX System 5のBSD互換性ツールのように、それらは正確な類似物ではなく、物事は大部分が平坦化されています。

この平坦化はどこのポイントに私たちをもたらしたhaltshutdownされているほとんど同じ。ただし、正確な詳細はツールセットごとに異なり、各ツールセットのメカニズムはすべてわずかに異なります。

また、このコマンドセットは、それが今、人々がコンピュータにのような自己矛盾した指示を与えることができます互換性オプションで飾られるようになった少し恥ずかしい位置に私たちをもたらしたreboot --haltpoweroff --reboot私は間食のマニュアルページで述べたように、haltfasthaltrebootfastboot、およびpoweroffコマンド。☺

systemdツールセット

haltrebootpowerofftelinit、とshutdownされているすべて一つのプログラム。それは実際にはsystemd自身のsystemctlプログラムです。これらのコマンドのさまざまなコマンドライン構文と独自のコマンドラインパーサーがいくつかありますが、その後は内部的に1つのコードパスに集中します。haltコマンドオプションを使用してアクションをトリガーすることshutdownと、コマンドオプションを使用して同じアクションをトリガーすることの間に違いはありません。

systemdは、レスキューモード(systemdの人々がシングルユーザーモードに名前を変更したもの)をシャットダウンシステム状態とは見なしません。また、これらのコマンドでは到達できません。オプションなしshutdown nowはと同じpoweroffです。

参考文献:

BSD

BSDの大部分は1980年代のセマンティクスを保持しています。 haltそして、shutdown非常にためているではない彼らのツールセットで同等。 haltそしてreboot、単一のプログラムです。まだ低レベルで、即時で、抜本的です。一方shutdown、とはpoweroff、1つのプログラムでも、スケジュールされたシャットダウン、wallメッセージの書き込み、アクションのログ記録、ログインの無効化など、思いやりのあることをすべて実行します。

BSDツールセットでは、shutdown/ poweroff伝統的に呼び出すことになったhalt/ reboot最終的なシステム状態の変更を制定します。(最近では正しくないことが多い)は、「shutdownexecs halt/ reboot」が実際にNetBSDとOpenBSDでまだ保持されているという知恵を受けました。ただし、FreeBSD / TrueOS / DragonFlyBSDでは、この-oオプションが使用されている場合のみです。これらのBSDに、両方のこれらのプログラムは、通常、(様々な信号を送信することによって、最終的なシステム状態の変化を制定INTUSR1およびUSR2#1を処理します)。 init、すべてのシステム状態の管理は、これらのシステム上で。

それらのすべてで、オプションレスは、shutdown nowのいずれかと等価ではないhaltrebootまたはpoweroff。BSD シングルユーザーモードに移行し、そこからマルチユーザーモードに戻ることができます

参考文献:

  • shutdownシステム管理者マニュアル。NetBSDマニュアルページ。2011-11-04。
  • reboothalt。OpenBSDマニュアルページ。2016-09-03。
  • shutdown。FreeBSDマニュアルページ。2016-09-21。
  • reboothaltfastbootfasthalt。FreeBSDマニュアルページ。2017-03-19。
  • shutdownシステム管理者マニュアル。DragonFlyBSDマニュアルページ。2016-09-29。
  • reboothaltfastbootfasthaltシステム管理者マニュアル。DragonFlyBSDマニュアルページ。2016-09-29。

noshツールセット

間食システム管理ツールセットで、haltfasthaltpowerofffastpoweroffreboot、およびfastbootすべて一つのプログラムです。これは、下位互換性シムに通常単にチェーンだshutdown反対受け取った知恵の。この--forceオプションは、system-control代わりに連鎖させます。

したがって、このツールセット--forcehaltコマンドとshutdownコマンド(同等のオプション)の間に違いはありません(存在しません)。この「BSD / System 5互換性」コマンドのセットは、の上にある薄いシム層ですshutdown

参考文献:

新興ツールセット

noshと同様に、新興企業のシステム管理ツールセットでは、受け取ったBSDの知恵の反対が適用されます。 haltreboot、およびpoweroffすべて一つのプログラム、通常チェーンにはshutdown--forceオプションを使用しない限り、reboot()システムがそれ自体を呼び出します。

したがって、このツールセットで--forceは、haltコマンドとshutdownコマンド(同等のオプション)の間に違いはありません(存在しません)。また再び、オプションレスshutdown now(のいずれもhaltrebootまたはpoweroffそれらのすべての設定オプションとして呼び出す終わることができが)にシステムをもたらすシングルユーザーモードではなく、それをシャットダウンします。

参考文献:

Linux System 5 init+ rcツールセット

繰り返しますが、このツールセットでは、受け取ったBSDの知恵の反対が適用されhaltreboot単純に連鎖します。shutdownただし、システムが既に電源オフまたは「実行レベル」を停止している場合を除きます。 shutdown順番にチェーンにinit

だから、もう一度、(システムがされていない限りは違いありません、すでに大部分がシャットダウン)の間haltshutdown、前者は後者だけを起動するためには。そして、はい、再び、オプションレスはshutdown now(そのうちのいずれもhaltrebootまたはpoweroffそれらのすべての設定オプションとして呼び出す終わることができが)にシステムをもたらすシングルユーザーモードではなく、それをシャットダウンします。


これが、投票者の80%が投票システムが機能しない理由です
-ychaouche

あなたは言う:「停止と再起動は単一のプログラムであり、まだ低レベル、即時、そして抜本的」であるが、そうではないようだ。dragonflyBSDのhalt manページを引用しています:haltおよびrebootユーティリティは、ファイルシステムキャッシュをディスクにフラッシュし、実行中のすべてのプロセスにSIGTERM(およびその後SIGKILL)を送信し、それぞれ、システムを停止または再起動します。シャットダウンレコードをwtmp(5)ファイルに入力するなど、アクションがログに記録されます。参照:dragonflybsd.org/cgi/web-man
command

そのリストにないものの既に明示的に与えられた(2回以上の)もののセットについて、答えをもう一度読んでください。これは、さまざまなBSDのシステム管理者用マニュアルにも記載されています。
JdeBP

@JdeBPのリスト
-ychaouche

11

これは、使用しているUNIX / Linuxのバージョンに多少依存していると思われます。Centos(および他の最新のLinux)では、システムが正常にシャットダウンされるように、haltがシャットダウンを実行します(ランレベル 0または6 でない場合)。Solaris 10では、停止はより残忍であり、ディスクキャッシュをフラッシュしてシステムの電源をオフにします。スクリプトの実行やsmf機能のシャットダウンは試行されません。


2

AWS EC2を使用する場合:AWS では、インスタンスが終了するとインスタンスshutdown が停止します。halt


stopterminateの違いは何ですか?
ロアイマ

これは完全に異なるトピックであり、ここではオフトップであるため、言及していません。ただし、docs.aws.amazon.com
AWSEC2 /

1
したがって、あなたの答えでは、停止は言うことを実行し、インスタンスを停止すると言いますが、停止(または別の用語ではterminate)はインスタンスを停止して削除します。
ロアイマ

はい。しかし、それはAWS固有のものです。
dveim

あ。そうですか。OPはコンテキストを提供していません。あなたが持っている。ありがとう。
ロアイマ

0

Linuxでは、「halt」と「reboot」はそれぞれシャットダウンコマンドのエイリアスです- shutdown -hおよびshutdown -r。ベアワードシャットダウンは、通常-hを想定しています。


10
それらはaliasesシェルエイリアスの意味ではありませんが、はい、halt基本的には単に呼び出しshutdown -hreboot実行するだけshutdown -rです。あなたが渡した場合ことに注意してください-fに(強制)オプションをhaltrebootshutdownされていないと呼ばれます。
ミケル

実際、まだ間違っていますが、systemdオペレーティングシステムでは、Shadurの説明はMikelの修正よりも真実に近いです。「AがBを呼び出すだけ」はありません。これらはすべて、unix.stackexchange.com / a / 196014/5132で詳細に説明されているように、1つのプログラムを呼び出す代替方法です。
JdeBP

@JdeBPこのsystemdを書いたときは、1年も経たないうちに公開されました。:)
シャドゥール

1
@JdeBP私はそれらを同一視するだろうに、と言う、sendmailこの時点でコマンド-のMTAと同じように、それはそれらのすべてが、両方を認識しますので、あなたが使用しているものinitシステム問題で実際にないshutdownhaltのような。
シャドゥール

1
実際、それは重要です。なぜなら、ツールセットには微妙な違いがあり、実際には微妙な違いがあるからです。皮肉なことに、それはsendmailコマンドにも当てはまります。それはsendmailコマンドのようなものですが、あなたが考える方法ではありません。
JdeBP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.