昨天在 /etc/systemd/system/ 目录下写了个service文件,但是第一次写出现了问题,之后编辑再刷新会报错: “Too many arguments.”,其实是我的命令写错了,但是排查的时候也把systemctl稍微学了一下。
systemd管理的unit也就是后缀是service的文件存放的路径为:/etc/systemd/system/
或者/usr/lib/systemd/system/
。
首先查看已有服务:
systemctl list-units
查看没有被激活的服务
systemctl list-unit-files
当服务也就是service文件修改后要重新载入,这个载入是重载所有文件,不是单独的一个service文件
systemctl daemon-reload
这里切记后面不要加service文件的名称,我输入多次报错 “Too many arguments.”,以为是service里面写的命令参数带多了,实际是这个reload命令后面带了不应该带的参数。
即使我们reload,Systemd已然可以使用自己缓存的服务文件,哪怕你用了daemon-reload更新。所以这时候要告诉Systemd,我们已经放弃不存在的服务文件了,让它也放弃自己缓存的那份:
systemctl reset-failed