Arch Linuxでは、一部のシステムアップデート(残念ながらどのアップデートであるかは不明)のため、シャットダウンvmware.service
/再起動中に中断されます。
systemctl stop vmware.service
サービスが実行されている間にサービスを手動で停止すると(たとえば、Gnome端末で)、gdm.service
サービスが迅速に停止し、期待どおりにすぐに終了することがわかりました。 Googleを試してみると、Fedora 21にも同様の問題があることがわかり、あるユーザーは問題を解決するためにlightdmに切り替えました。 lightdmに切り替えたくないので、systemdにvmware.service
停止前に停止するように指示する方法があるかどうか疑問に思いますgdm.service
。または誰かが解決策がある場合...
答え1
もちろん方法があります。単一トランザクション内で有効/無効にしたときに、特定の相互順序に従う単位ペア間のいわゆるsystemd
「順序依存」の指定をサポートします。systemd
~からシステムユニット(5):
=前、=後
スペースで区切られた単位名のリスト。ハイブ間の依存関係を注文します。 foo.serviceデバイスにBefore = bar.service設定が含まれていて、両方のデバイスが起動している場合、foo.serviceが起動するまでbar.serviceの起動が遅れます。 <...>順次依存関係を持つ2つのデバイスがシャットダウンすると、開始順序は逆になります。つまり、あるデバイスが別のデバイスにAfter =を設定した場合、両方のデバイスがシャットダウンすると、前者は後者の前に停止します。 <...>
vmware.service
したがって、停止する前に無効(停止)を試みます。上記に基づいて、gdm.service
ユニットにソート依存関係を追加することでこれを達成できます。After=gdm.service
vmware.service
セル全体をにコピーしたくない場合は、/etc/systemd/system
次のメカニズムを使用できます。一時挿入(「例2」を参照)必須/etc/systemd/system/vmware.service.d/<some name>.conf
ディレクティブとセクションヘッダのみを含むファイルを作成する必要があります。
[Unit]
After=gdm.service
これが完了したら、ユニットをsystemctl daemon-reload
再読み込みするコマンドを実行します。systemd
終了時に新しい依存関係リストが適用されます。