linux – upstart脚本需要在/ tmp挂载和写入后运行
作者:互联网
我有一个在Vagrant虚拟环境中运行的Ubuntu Linux服务器.我使用服务器开发Web服务.当服务器启动时,我有一个需要运行一次的shell脚本,以便在/ tmp / filesystem上设置缓存目录结构.
description "setup web cache"
start on startup
script
mkdir -p /tmp/cache/persistent
mkdir -p /tmp/cache/models
mkdir -p /tmp/cache/views
chmod -R 777 /tmp/cache/
end script
当我启动服务器时,我收到一条显示在/var/log/upstart/webcache.log中的错误消息:
mkdir: cannot create directory `/tmp/cache': Read-only file system
显然启动还为时尚早.问题是,什么时候/ tmp可用于写作以及我要通过什么来开始?
解决方法:
由于您的工作需要在安装本地文件系统时启动,因此您很可能需要以下定义:start on local-filesystems
请参阅local-filesystem事件example.
您将找到众所周知的Upstart活动here的概述.
此外,您的工作是短暂的工作,而不是服务/守护进程.使用task节更合适.通过这种方式,您可以运行依赖于实际创建这些目录后创建的缓存目录的作业.否则,如果您定义所有从属作业以启动运行级别[2345]依赖作业可能在创建所需目录之前启动,例如依赖作业可能使用以下定义:start on started webcache.
description "setup web cache"
start on local-filesystems
task
script
mkdir -p /tmp/cache/persistent
mkdir -p /tmp/cache/models
mkdir -p /tmp/cache/views
chmod -R 777 /tmp/cache/
end script
最后,您可以考虑使用Vagrant shell provisioner来创建所需的缓存目录.
标签:linux,upstart 来源: https://codeday.me/bug/20190612/1227088.html