今systemdに答えがあります。

今systemdに答えがあります。

at 18:00 shutdown nowそしてshutdown 18:00、同じサービスを発売していますか?彼らは同じように動作しますか?

答え1

at 18:00 shutdown nowatcronシステムによっては、デーモンまたはデーモンによって指定された時間に実行される「at」ジョブを作成します。

shutdown 18:00シェルでプロセスを開始し、指定された時間待ってからシャットダウンを実行します。シェルセッションが終了したら、このコマンドを終了できます。

ほとんどの場合、最終結果は同じです。システムは18:00に終了します。

at1つの違いは、Unexpectedを使用する場合

もう1つの違いは、shutdown 18:00予約時間の5分前にファイルを作成し、/run/nologinその時間以降にログインできないことです。また、ログインしたユーザーにシステムがすぐにシャットダウンすることを警告するためにブロードキャストメッセージが送信されます。

使用するものを決定するには、これらの違いを考慮する必要があります。

答え2

今systemdに答えがあります。

CentOS 7があり、システムオペレーティングシステムがある場合、答えは異なります。

at 18:00 shutdown nowat予約は依然としてサブシステムを介して行われますが、shutdownコマンドと直接呼び出すコマンドはshutdown 18:00異なります。実際にはシステム化されたプログラムですsystemctlsystemctl仕事を別様にしなさい。

まず、この例とよく似てsystemctl予約された終了要求がデーモンによって処理されるように送信されます。atただし、これはサブシステムではなくsystemdデーモンlogindsystemd-shutdownd2015年5月にsystemdから削除され、CentOS 7の後続のマイナーバージョンにつながった変更)ですatsystemctl内部プロトコルを(システム全体の)デスクトップバスエージェントに渡しますlogind

したがって、この場合のようにカウントダウンしてメッセージを生成するプロセスはatありません。したがって、スケジュールに影響を与えないログアウトが可能であり、キャンセルはログインセッションのフォアグラウンドプロセスを中断/終了するほど簡単ではありません。同様に。shutdownwallat

そこまだatこの場合とは異なり、メッセージはから送信されますlogind。この状況とは異なり、スケジュールされatたタスクはシステムの再起動後も持続しないため、実際のシャットダウン時にスケジュールされたタスクはキャンセルされます。そこはいファイルシステム内のファイルですが、/run/systemd/shutdownその下に非永続ストレージがあります。

別の違いは一つ一人の人がat一度に複数のジョブを送信できますが、ポリシーツールキットは、ログインセッションコンテキストshutdownで実行されるジョブに適用されるルールatとは異なる、非shutdownログインセッションコンテキストでジョブとして実行されるルールを適用します。後者がより寛大である可能性があります。特権のないシステムをシャットダウンするためにアクティブなログインセッションにログインするユーザー。

追加読書

関連情報