我有一個在Vagrant虛擬環境中運行的Ubuntu Linux服務器。我使用服務器開發Web服務。當服務器啓動時,我有一個需要運行一次的shell腳本,以在/tmp/
文件系統上設置緩存目錄結構。在安裝/寫入/ tmp之後需要運行Upstart腳本
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
顯然startup
爲時過早start on
。問題是,/tmp
什麼時候可以寫入,並且我通過什麼傳遞給start on
?
很好的答案,謝謝。我確實考慮過shell提供程序,但默認情況下(儘管可能每次都會強制運行),provisioning只運行一次,這就是爲什麼我正在尋找一種將功能置入無用客戶端的方法。 – SunSparc
我不知道需求,但通常的[位置](http://www.linfo.org/var.html)應用程序緩存應該是/ var/cache/app-name。然而,在這種情況下,它將在應用程序上,例如,你清理緩存。 :) –
這是很好的知道(雖然也許脫離主題)。在這個特定的實例中,應用程序是一個Web應用程序,並且正如Web用戶一樣運行。網絡用戶默認情況下似乎沒有對'/ var/cache'的寫入權限。 – SunSparc