次のシステム単位ファイルがあります/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スクリプトに問題がある人なら誰でも同じことをお勧めします。