Ubuntu

用於 tracd 的 Ubuntu 新貴腳本在啟動/停止時掛起

  • December 31, 2012

我正在嘗試設置一個 Ubuntu (12.04 LTS) 新貴腳本來管理 Trac 的內置 Web 伺服器作為 nginx 的上游伺服器。

這是我的初始化腳本/etc/init/tracd.conf。我使用http://codebyko.se/2010/11/26/tracd-with-upstart-on-ubuntu/(“upstart”和“tracd”的第一個也是唯一一個Google結果)作為起點:

description "Tracd Web Server"

start on startup
stop on shutdown

expect daemon

exec sudo tracd -d -p 8000 -b 192.168.1.2 --user=www-data --group=www-data /trac/proj

每當我通過sudo service tracd startor執行它時sudo service tracd stop,它都會掛起並且永遠不會返回。sudo service tracd status返回“跟踪啟動/終止,程序 748”。upstart 日誌/var/log/upstart/tracd.log不包含任何資訊,syslog 也不包含任何資訊。

如果我只是在命令行上複製和粘貼sudo tracd -d -p 8000 -b 192.168.1.2 --user=www-data --group=www-data /trac/proj,伺服器執行良好。

這是我嘗試過的:

  • Google搜尋 - 很難。通讀 Ubuntu 的新貴食譜頁面和所有 Trac 指南:TracInstallTracNginxRecipeTracStandalone
  • 使用expect forkexpect daemon或完全省略該expect行。
  • 在 exec 行周圍使用script/塊。end script
  • 使用setuid www-data/ setgid www-data
  • 使用sudo -u www-data甚至sudo su www-data -c "..."
  • 創建了一個 www-data 可寫目錄 /var/run/trac/並指定--pidfile=/var/run/trac/tracd.pid.
  • 檢查輸出sudo -u www-data env以查看命令行是否有任何特殊的環境變數,因為它在從 shell 執行時執行良好。Trac 似乎不依賴任何環境變數。
  • 使用了更詳細但相同的命令:sudo /usr/bin/python /usr/local/bin/tracd --daemonize --port=8000 --hostname=192.168.1.2 --user=www-data --group=www-data /trac/proj
  • 使用 . 檢查殭屍 tracd 守護程序ps -aux | grep trac

我沒有嘗試過的事情:

  • 放棄 init.d 腳本的暴發戶。

編輯:固定

刪除--daemonize標誌似乎已修復它。謝謝邁克!這是我的工作新貴腳本:

description "Trac Web Server"

start on startup
stop on shutdown

setuid www-data
setgid www-data

exec tracd -p 8000 -b 192.168.1.2 /trac/proj

我認為您不需要 sudo,因為 tracd 正在設置使用者/組

description "Tracd Web Server"

start on startup
stop on shutdown


expect daemon

exec tracd -p 8000 -b 192.168.1.2 --user=www-data --group=www-data /trac/proj

如果這不起作用,請嘗試通過setuidand將正在執行的使用者設置為暴發戶setgid

description "Tracd Web Server"

start on startup
stop on shutdown

setuid www-data
setgid www-data

expect daemon

exec tracd -p 8000 -b 192.168.1.2 /trac/proj

編輯

刪除 -d 標誌.. upstart 你不能作為守護程序執行它需要像在前台執行一樣執行的東西

引用自:https://serverfault.com/questions/461874