执行一个自定义systemctl的service
systemctl restart/start xxxxx 报错
通过 systemctl status xxxxx 查看,发现错误代码
(code=exited, status=203/EXEC)
code=exited, status=200/CHDIR
原因1 :systemctl执行脚本时需要知道脚本的解释器
原因2:目标目录的执行权限不够
原因3:要执行的脚本编码格式不正确
原因4:定义的workingdirectory路径有问题
解决方法:
1.在自定义脚本的开头加上#!/bin/sh
2.修改目标目录的权限 chmod -R 777 /目标目录
3.vi或vi编辑文件输入:set ff+回车键查看当前文件编码格式,:set ff=unix+回车键设置文件的编码格式为unix;
4.Systemd下的服务配置,如果设定使用了workingdirectory,但是在systemctl start之前没有创建该目录,将会无法正常启动,并且根据缺省方式下的status提示信息和journalctl无法清楚地定位问题,如果使用到workingdirectory,需要事先保证该目录的创建,可以考虑使用systemd提供的debug日志进行确认;
chmod的详细用法见http://t.csdn.cn/JTNIu
使用systemd下进行debug的方式可参看如下文章:http://t.csdn.cn/6nwqv