的Ghost blogging platform installation instructions [許可證:CC-BY-3.0]有說明如何使用supervisord部署腳本的NodeJS(運行的博客),這樣,當它失敗並重新啓動系統將重啓的部分。
主管(http://supervisord.org/)受歡迎Linux發行版 - 例如 如Fedora的,Debian和Ubuntu的保持主管的軟件包:甲 過程控制系統,它允許你不使用初始化腳本在啓動時運行 幽靈。與初始化腳本不同,Supervisor在Linux發行版和版本之間可移植爲 。
按照Linux發行版的要求安裝Supervisor。通常情況下, 這將是:
於Debian/Ubuntu:apt-get的安裝監
的Fedora:百勝安裝主管
大多數其他發行版:easy_install的主管
確保主管正在運行,運行 service supervisor start
爲您的Ghost安裝創建啓動腳本。使用超級
[program:ghost]
command = node /path/to/ghost/index.js
directory = /path/to/ghost
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"
開始鬼:通常,這會 在 /etc/supervisor/conf.d/ghost.conf
例如supervisorctl啓動鬼
要停止鬼:supervisorctl停止鬼
OK,所以如果您的腳本被稱爲myscript.py
並且它屬於用戶蛇並住在/home/snake
。
然後命令應python /home/snake/myscript.py
,該目錄應該是,無論你想運行這個(我們假設這是/home/snake
),該用戶應適當設置(我們假設您想要以用戶蛇運行),自動保持不變,日誌文件應該重命名。
環境設置腳本所需的任何ENV變量。通常情況下,除非您正在使用它們來控制腳本的各個方面,否則不需要它。
- 安裝supervisord如上,但不設置任何東西鬼
- 相反,創建
/etc/supervisor/conf.d/myscript
如下:
- supervisorctl開始的MyScript
/etc/supervisor/conf.d/myscript
[program:myscript]
command = python /home/snake/myscript.py
directory = /home/snake
user = snake
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/myscript.log
stderr_logfile = /var/log/supervisor/myscript_err.log
應該正在運行,並且即使在重新啓動時也會重新啓動。
關於您的安全問題,這是有問題的。如果您認爲攻擊者具有對包含該腳本的文件系統的讀/寫訪問權限,則他們還可以更改安全哈希。公鑰簽名更好一些,因爲攻擊者不知道如何改變簽名,因爲他缺少私鑰。但是再一次,攻擊者可能會簡單地重寫測試簽名的代碼並繞過它,或者替換腳本以驗證後運行腳本,以便始終運行其他命令。
請參閱[看門狗定時器](http://en.wikipedia.org/wiki/Watchdog_timer)。如果程序本身是可靠編寫的,程序本身不應該死亡,但如果程序死亡,自動化系統就會報告和/或重新啓動它。如果它能夠恢復是另一回事,並取決於它如何終止以及數據/操作已經存在的狀態以及任何潛在的保證或缺乏。爲了防止修改,只需拿走訪問權限。 – user2864740 2014-09-27 04:25:26
[Ghost](https://ghost.org)的博客使用[supervisord](http://supervisord.org/)觀看並重新啓動可能失敗的進程。 – Paul 2014-09-27 04:29:48
類似於:http://stackoverflow.com/questions/10922754/python-watchdog-for-another-python-process-technique/10922938#10922938 – Paul 2014-09-27 04:33:53