Cob*_*ast 7 service escaping systemd
我的单元文件看起来像这样(已经\x20像文档所说的那样尝试转义空格):
[Unit]
Description=My Service
[Service]
Type=simple
WorkingDirectory=/home/cobra/my\x20service/
ExecStart=/home/cobra/my\x20service/start.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
但是当尝试启动它时,它失败并显示以下消息:
Failed at step CHDIR spawning /home/cobra/my service/start.sh: No such file or directory
myservice.service: main process exited, code=exited, status=200/CHDIR
Run Code Online (Sandbox Code Playgroud)
给出从此错误消息stat返回的路径:
File: ‘/home/cobra/my service/start.sh’
Size: 280 Blocks: 8 IO Block: 4096 regular file
Device: 903h/2307d Inode: 4718912 Links: 1
Access: (0754/-rwxr-xr--) Uid: ( 1000/ cobra) Gid: ( 1000/ cobra)
Access: 2015-05-24 22:42:12.702657594 +0200
Modify: 2015-03-27 22:28:05.682531000 +0100
Change: 2015-05-24 22:40:58.830298787 +0200
Birth: -
Run Code Online (Sandbox Code Playgroud)
我无法从文件名中删除空格,因为我尝试运行的服务出于某种原因需要它们。
我哪里错了?
hoo*_*enz 10
在 systemd 中生成路径的正确方法是使用 systemd-escape。
IE
~$ systemd-escape --path "/home/cobra/my service/start.sh"
home-cobra-my\x20service-start.sh
Run Code Online (Sandbox Code Playgroud)
是的/被替换为-
显而易见的事情是使用双引号。
ExecStart="/home/cobra/my service/start.sh"
Run Code Online (Sandbox Code Playgroud)
您还应该删除 start.sh 脚本并将任何必要的逻辑移至单元中。
| 归档时间: |
|
| 查看次数: |
12162 次 |
| 最近记录: |