`systemctl start restart.target`と`systemctl restart`の実質的な違いは何ですか?

`systemctl start restart.target`と`systemctl restart`の実質的な違いは何ですか?

start reboot.targetrebootしかし、start reboot.target何がそれを引き起こしましたかctrl-alt-del.target

ctrl-alt-del.target省略は重要ですか--job-mode=replace-irreversibly?どのような状況でこれが別の行動につながるのでしょうか?なぜ含まれていますかsystemctl reboot

man systemctl

再起動[パラメータ]

システムをシャットダウンして再起動します。これはほとんどに当てはまりますstart reboot.target --job-mode=replace-irreversiblyが、すべてのユーザーに壁メッセージを印刷することもあります。

man systemd.special

ctrl-alt-del.target: systemd は、コンソールで Control+Alt+Del を押すたびにこのターゲットを起動します。通常、これはboot.targetのエイリアス(symlink)でなければなりません。

答え1

ファイルのソースコードを読むと、そのファイルが参照されることreboot.targetがわかります。これは同じコマンドの別の名前であり、同じように動作することを意味します。ctrl-alt-del.targetAlias=

systemctl.cのソースコードを見る、私達はまたオプションが渡されることを見るsystemctl rebootことができます。replace-irreversibly

したがって、見つかった再起動コマンドの3つのバリエーション、およびsystemctl rebootすべてreboot.targetが同じように機能するようですctrl-alt-del.target

文書を改善するための提案がある場合 システム文書のソースXMLファイルそしてプルリクエストを送信してください。

答え2

このオプションは、新しいジョブがキューに追加されたときにキュー内のジョブを処理する方法を制御します。 「失敗」、「交換」、「元に戻せない交換」、「分離」、「依存関係を無視」、「要件を無視」、または「更新」のいずれかが必要です。分離コマンドを使用しない限り、デフォルトは「交換」です(「分離」作業モードを意味します)。

「fail」が指定され、要求されたジョブが一時停止されたジョブと競合する場合(具体的には、一時停止された開始ジョブが停止ジョブに切り替わるか、その逆になると)、ジョブは失敗します。

「replace」(デフォルト)を指定すると、競合する保留中のジョブが必要に応じて置き換えられます。

'replace-irreversible'が指定されている場合、ジョブは 'replace'に似ていますが、新しいジョブも元に戻せないとマークされます。これにより、将来の競合するトランザクションがこれらのジョブを置き換えることを防ぐことができます(元に戻すことができないジョブが保留中にキューに入っている場合も含まれます)。元に戻せない操作は、キャンセルコマンドを使用してキャンセルできます。

これは実際の結果を示しています。 「セルをスリープ状態ロジックに接続する」と仮定した場合は、プルをsleep.target使用します。あなたのフックデバイスにはありませんので...とにDefaultDependencies=no依存します。sysinit.targetConflictshutdown.target

systemctl start reboot.targetすぐに実行すると、systemctl start suspend.targetフックセットが停止しているように見えますshutdown.target。これsystemd-reboot.serviceがあるのでRequires=shutdown.target停止/キャンセルする必要があります。 (umount.targetキャンセルしないでください。)

私はこれらの行に沿った行動の違いを確認しました。システムの問題トラッカーで障害として報告してください。

関連情報