起動時にアクティブなシステムサービスが起動しないのはなぜですか?

起動時にアクティブなシステムサービスが起動しないのはなぜですか?

次のシステム単位ファイルがあります/etc/systemd/system/emacs.service

[Unit]
Description=Emacs: the extensible, self-documenting text editor
Documentatin=man:emacs(1) info:Emacs


[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(progn (setq kill-emacs-hook nil) (kill-emacs))"
Restart=always
Environment=DISPLAY=:%i
TimeoutStartSec=0

[Install]
WantedBy=default.target

起動時に起動したいので、次のように入力しました。systemctl enable emacs

ただし、サービスが再起動されるたびに、次のものsystemctl status emacsが表示されます。

● emacs.service - Emacs: the extensible, self-documenting text editor
   Loaded: loaded (/etc/systemd/system/emacs.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

ただし、systemctl start emacsステータスを入力して確認すると、次のものが返されます。

● emacs.service - Emacs: the extensible, self-documenting text editor
   Loaded: loaded (/etc/systemd/system/emacs.service; disabled; vendor preset: enabled)
   Active: active (running) since Fri 2016-11-11 23:03:59 UTC; 4s ago
  Process: 3151 ExecStart=/usr/bin/emacs --daemon (code=exited, status=0/SUCCESS)
 Main PID: 3154 (emacs)
    Tasks: 2
   Memory: 7.6M
      CPU: 53ms
   CGroup: /system.slice/emacs.service
           └─3154 /usr/bin/emacs --daemon

起動時にこのプロセスを正常に開始するにはどうすればよいですか?

ベストアンサー1

理由はわかりませんが、正しく機能させるには、次の手順を実行します。

削除済みEnvironment=DISPLAY=:%i

User=変数を追加しました

正しいファイルがあることを確認してください/etc/systemd/system/emacs.service(ハードリンクの前)。

そして再実行systemctl enable emacs

これはうまくいきます。

編集する ここで本当の問題は、3行にタイプミスがあるということです。 Documentatin

を確認しながら知りましたjournalctl。 stderrにエラーが送信されないため、systemdスクリプトに問題がある人なら誰でも同じことをお勧めします。

おすすめ記事