Service systemctl enable可以工作,但systemctl--user enable不能工作
我有一个运行Ubuntu16.04.1x64的DO droplet,我正在尝试作为systemd服务运行。我已经按照说明创建了一个用户“connor”,并安装了IPFS。我将服务存储为~/.config/systemd/user/ipfs.service中的“ipfs.service”,如下所示:Service systemctl enable可以工作,但systemctl--user enable不能工作,service,systemd,systemctl,ipfs,Service,Systemd,Systemctl,Ipfs,我有一个运行Ubuntu16.04.1x64的DO droplet,我正在尝试作为systemd服务运行。我已经按照说明创建了一个用户“connor”,并安装了IPFS。我将服务存储为~/.config/systemd/user/ipfs.service中的“ipfs.service”,如下所示: [Unit] Description=IPFS Daemon [Service] Type=simple ExecStart=/usr/local/bin/ipfs daemon ExecStop=
[Unit]
Description=IPFS Daemon
[Service]
Type=simple
ExecStart=/usr/local/bin/ipfs daemon
ExecStop=/usr/bin/pkill ipfs
Restart=always
User=Connor
[Install]
WantedBy=default.target
奇怪的是,如果我运行systemctl--user start ipfs,它就会正常启动。但是,运行systemctl--user daemon reload,然后
systemctl——用户启用ipfs我得到错误:
无法执行操作:没有此类文件或目录
但是,如果我运行systemctl enable/home/connor/.config/systemd/user/ipfs.service-f,它运行得很好。我可以重新启动并运行IPFS命令。不过,我想以用户的身份运行它,也希望了解我做错了什么 请检查您是否正在使用
connor
user执行命令,您可以运行whoami
查看执行命令的用户。(使用sudo运行命令会将用户更改为root
)
此外,我看到服务文件中的用户是大写的(Connor而不是Connor),这可能会带来其他问题,而且不需要,因为像用户守护进程这样的简单配置是有效的
请查找以下我用于ipfs守护程序的配置(不带User=和不同的Restart=,因为Restart=在启动守护程序时总是给我带来问题):
您是否使用
connor
user执行命令?请注意,使用sudo执行命令可能会将用户更改为root
。
[Unit]
Description=IPFS daemon
After=network.target
[Service]
ExecStart=/usr/local/bin/ipfs daemon
Restart=on-failure
[Install]
WantedBy=default.target