【发布时间】:2015-02-17 16:01:02
【问题描述】:
当我尝试通过 systemd 服务执行脚本时 - 我收到错误消息并且脚本无法运行。
init_something.service 文件:
[Unit]
Description=Loading module --module_name module
[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/init_script
[Install]
WantedBy=multi-user.target
init_script 文件:
#!/bin/bash -
/usr/local/bin/init.sh --module_init
现在如果我尝试通过 systemctl 启动服务,我会收到错误消息:
# systemctl start init_something.service
Job for init_something.service failed. See 'systemctl status init_something.service' and 'journalctl -xn' for details
# systemctl status init_something.service
init_something.service - Loading module --module_name module
Loaded: loaded (/usr/lib/systemd/init_something.service)
Active: failed (Result: exit-code) since Thu 1970-01-01 08:00:24 CST; 1min 49s ago
Process: 243 ExecStart=/usr/lib/systemd/init_script (code=exited, status=1/FAILURE)
Main PID: 243 (code=exited, status=1/FAILURE)
但如果我尝试手动运行 init_script - 它可以完美运行:
# /usr/lib/systemd/init_script
[ 447.409277] SYSCLK:S0[...]
[ 477.523434] VIN: (...)
Use default settings
map_size = (...)
u_code version = (...)
etc.
最后模块加载成功。
那么问题来了——为什么systemctl不能执行这个脚本,但是手动就没有问题了?
【问题讨论】: