我在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发布于 2021-05-15 19:16:15
尽管运行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允许我解决这个问题。
发布于 2021-04-16 05:26:36
让我给你一个办法。第一类:
systemctl get-default你可能会得到graphical.target。然后将以下行添加到服务文件中
[Install]
WantedBy=graphical.target要告诉systemd,哪个目标启动了您的服务。如果您的默认目标不同,请使用它而不是graphical.target (例如,multi-user.target,.)。然后用以下方式重新加载系统
sudo systemctl daemon-reload以确保重新加载服务文件中的更改。在此之后,服务应该从重新启动开始。
https://unix.stackexchange.com/questions/645331
复制相似问题