Ubuntu 由于日志文件创建失败,upstart 不会启动程序

Ubuntu upstart won't start program due to log file creation failure

我有一个 upstart 脚本如下。

#!upstart
description "example site services"
author "Peter"

start on startup
stop on shutdown

respawn

script
echo $$ > /var/run/website.pid
exec /etc/nginx/website 2>&1
end script

pre-start script
echo "[Fri Sep 11 02:04:39 UTC 2015] (sys) Starting" >> /var/log/website.sys.log
end script

pre-stop script
rm /var/run/website.pid
echo "[2015-09-11T02:04:39.444Z] (sys) Stopping" >> /var/log/website.sys.log
end script

这应该会自动启动 Nginx 网站。

但是,在启动日志中我收到这条消息。

/bin/sh: 1: /bin/sh: cannot create /var/log/website.sys.log: Read-only file system

我试过更改此文件的权限。它目前 root root 具有两个 rw 权限。还是不行。

-rw-rw-r--  1 root      root       1506 Sep 27 21:39 website.sys.log

我做错了什么?

我讨厌回答自己的问题,但找到了适合我的解决方案。

不指定日志位置。

我变了

echo "[Fri Sep 11 02:04:39 UTC 2015] (sys) Starting" >> /var/log/website.sys.log

echo "[Fri Sep 11 02:04:39 UTC 2015] (sys) Starting"

虽然这个问题在这里可能是题外话,Read-only file system 意味着您在引导序列中启动该服务的时间过早,此时根文件系统尚未(重新)以读写方式挂载。你或许应该改变

start on startup
stop on shutdown

更合适的东西,比如

start on local-filesystems
stop on <whatever>