XUbuntu 20.04にNixパッケージマネージャをインストールしました。サービスを追加しますnix-daemon
。nix-daemon
起動時にサービスを開始したいと思います。次のコマンドを入力すると、コンピュータが停止するまでサービスが実行され、正常に動作しますが、再起動した後はサービスが実行されずにコマンドを再実行する必要があります。
systemdがサービスを無効にしたか、有効になったことを忘れてしまったようです。このサービスを有効にして有効にするようにsystemdに指示するにはどうすればよいですか?
$ sudo systemctl status nix-daemon
Unit nix-daemon.service could not be found.
$ sudo systemctl enable nix-daemon
$ sudo systemctl status nix-daemon
● nix-daemon.service - Nix Daemon
Loaded: loaded (/nix/store/4vz8sh9ngx34ivi0bw5hlycxdhvy5hvz-nix-2.3.7/lib/systemd/system/nix-daemon.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/nix-daemon.service.d
└─override.conf
Active: inactive (dead)
TriggeredBy: ● nix-daemon.socket
$ sudo service nix-daemon start
● nix-daemon.service - Nix Daemon
Loaded: loaded (/nix/store/4vz8sh9ngx34ivi0bw5hlycxdhvy5hvz-nix-2.3.7/lib/systemd/system/nix-daemon.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/nix-daemon.service.d
└─override.conf
Active: active (running) since Fri 2021-04-16 04:35:15 BST; 2s ago
TriggeredBy: ● nix-daemon.socket
Main PID: 55329 (nix-daemon)
Tasks: 5 (limit: 9091)
Memory: 13.8M
CGroup: /system.slice/nix-daemon.service
└─55329 nix-daemon --daemon
Apr 16 04:35:15 wayfire systemd[1]: Started Nix Daemon.
Apr 16 04:35:15 wayfire nix-daemon[55329]: warning: unknown setting 'experimental-features'
Apr 16 04:35:15 wayfire nix-daemon[55329]: warning: unknown setting 'keep-derivarions'
編集する:
インストーラが生成するもの/etc/systemd/system/nix-daemon.service
(修正していません):
[Unit]
Description=Nix Daemon
RequiresMountsFor=/nix/store
RequiresMountsFor=/nix/var
ConditionPathIsReadWrite=/nix/var/nix/daemon-socket
[Service]
ExecStart=@/nix/store/4vz8sh9ngx34ivi0bw5hlycxdhvy5hvz-nix-2.3.7/bin/nix-daemon nix-daemon --daemon
KillMode=process
[Install]
WantedBy=multi-user.target
/etc/default/nix ファイルがありません。
$ systemctl get-default
graphical.target
答え1
を実行しているにもかかわらず、起動時にサービスがロードされない理由はいくつかありますsystemctl enable thename.service
。私の場合、/etc/systemd/system/nix-daemon.service
インストーラによって作成され(おそらく?)/nix/var/nix/profiles/default/lib/systemd/system/nix-daemon.service
私の/nix
パーティションは別のパーティションでしたが、systemdは.service
ファイルをマウントする前にファイルを読み取ろうとしました(サービスが認識されませんでした)。journalctl | grep nix-daemon
問題を解決できるようにしてください。
答え2
方法をお知らせします。最初:
systemctl get-default
あなたは得ることができますgraphical.target
。次に、サービスファイルに次の行を追加します。
[Install]
WantedBy=graphical.target
サービスを開始する対象をsystemdに教えてください。デフォルトのターゲットが異なる場合は、代わりに使用してくださいgraphical.target
(例multi-user.target
:...)。その後、systemdを再ロードします。
sudo systemctl daemon-reload
サービスファイルの変更が再ロードされるようにします。その後、再起動してサービスを開始する必要があります。