当前位置: 首页 > 知识库问答 >
问题:

systemctl enable起作用,但systemctl--用户启用不起作用

高砚
2023-03-14

我有一个运行Ubuntu 16.04.1x64的DO droplet,我正在尝试将IPFS作为systemd服务运行。我已经按照这里的说明创建了一个用户“connor”,并安装了IPFS。我将服务存储为~/中的“ipfs.service”。config/systemd/user/ipfs。如下所示的服务:

[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--user启用ipfs我得到错误:

无法执行操作:没有此类文件或目录

但是,如果我运行systemctl enable/home/connor/。config/systemd/user/ipfs。服务f运行正常。我可以重新启动并运行IPFS命令。不过,我想以用户身份运行它,也希望了解我做错了什么。

共有1个答案

闻人宜
2023-03-14

请检查您是否正在使用connor用户执行命令,您可以运行whoami查看用户执行命令。(使用sudo运行命令会将用户更改为root)

此外,我看到服务文件中的用户是大写的(Connor而不是Connor),这可能会带来其他问题,而且不需要,因为像Arch Linux wiki建议的简单配置适用于用户守护进程。

请查找我为我的ipfs守护进程使用的配置(没有用户=并且具有不同的重新启动=,因为重新启动=在启动守护进程时总是给我带来问题):

[Unit]
Description=IPFS daemon
After=network.target

[Service]
ExecStart=/usr/local/bin/ipfs daemon
Restart=on-failure

[Install]
WantedBy=default.target
 类似资料:
  • 无法使用语法来代替 它看起来像这样: 但是当我使用@Connect装饰器使事物更干净时,我没有得到任何在我的状态中列出的东西。 突然之间,它不知何故实际上并不连接事物: 我做错了什么,我看到每个人都在使用的神奇的@Connect装饰器的正确使用方法是什么? 其余的代码,以防万一,以@connect的形式;

  • 我只是在Windows中安装jdk和jre版本8。环境变量已设置。我尝试在cmd中运行“java-version”,它显示了安装的java版本。但是当我尝试用“javac projectname”编译java项目时,系统说javac不能被识别为内部命令或外部命令。有谁能告诉我怎么修好它吗? 下面是我的环境变量: C:\users\foody>echo%路径%C:\ProgramData\Oracl

  • 因此,我在一个控制器中有一个非常简单的代码片段,在这个代码片段中,我使用从外部文件中获取数据,它工作得很好!但是当我使用时,我会在控制台中得到一个

  • pm2-init.sh文件: 这不起作用,所以我尝试使用,如下所示:首先,创建一个脚本,并将其命名为 然后打开编辑器:

  • 好的,我安装了最新版本的虚拟盒子,我的电脑(惠普)有AMD A10、64位视窗10操作系统和6Gb内存。 我用Windows 7创建了一个虚拟机,我想在那里创建一个新的虚拟机(VM1中的VM2),但我无法运行它,因为我在VM1中没有启用虚拟化。 好的,所以我检查了VM1配置,并在虚拟框设置中启用了虚拟化。我尝试过使用所有半虚拟化接口,并始终启用硬件虚拟化(VT-x 和 AMD-V)。我真的不知道为

  • 问题内容: 正则表达式似乎还可以,因为第一行将子字符串正确替换为“ helloworld”,但是后者却不匹配,因为我看不到“ whynothelloworld?”。在控制台上 问题答案: 期望 整个 字符串匹配,而不仅仅是子字符串。 使用正则表达式匹配器对象的方法代替: