簡述
源碼部署了odoo,希望將odoo的啟動添加到service服務中,方便啟動。
若用命令行方式啟動腳本,十分簡單:
# python openerp-server
但為了方便部署,想要把它做成一個服務(service),這樣就可以用服務來控制它的啟動/停止,而且便于在開機時自啟動
啟動/停止腳本openerp(將來需要放置到?/etc/init.d/?中):
#!/bin/sh
#chkconfig: 123456 90 10
# openerp server for user authentication
workdir=/odoo/odoo-8.0/
daemon_start() {
? ? cd $workdir
? ? python /odoo/odoo-8.0/openerp-server &
? ? echo "Server started."
}
daemon_stop() {
? ? pid=`ps -ef | grep '[p]ython /odoo/odoo-8.0/openerp-serve' | awk '{ print $2 }'`
? ? echo $pid
? ? kill $pid
? ? sleep 2
? ? echo "Server killed."
}
case "$1" in
? start)
? ? daemon_start
? ? ;;
? stop)
? ? daemon_stop
? ? ;;
? restart)
? ? daemon_stop
? ? daemon_start
? ? ;;
? *)
? ? echo "Usage: /odoo/odoo-8.0/openerp-server {start|stop|restart}"
? ? exit 1
esac
exit 0
第一行:#!/bin/sh?是指此腳本使用?/bin/sh?來解釋執(zhí)行,#!?是特殊的表示符,其后面根的是解釋此腳本的 shell 的路徑。
第二行:比較特殊,看起來像是注釋,但?chkconfig?命令需要用到,必須存在。定義了在運行級別 1、2、3、4、5、6 中,服務將被激活(狀態(tài)為:on),90 代表 Start 的順序,10 代表 Kill(Stop)的順序。
要將其作為一個后臺服務,大概分為以下幾步:
1、為所需的服務創(chuàng)建一個用戶?
2、確保該用戶對要設置的二進制文件具有完全訪問權限:
/usr/bin/python
3、將啟動/停止腳本 openerp復制到?/etc/init.d/?中
4、確保腳本被標記為可執(zhí)行文件:
chmod +x /etc/init.d/openerp on
5、在運行級別 2、3、4、5 中啟用配置:
chkconfig openerp
6、啟動/停止服務:
service openerp start# 啟動服務 ?
service openerp restart# 重啟服務