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
서비스 파일의 변경 사항이 다시 로드되도록 합니다. 그런 다음 재부팅하여 서비스를 시작해야 합니다.