[英]Shell script starting passenger
我有一個Shell腳本,如果未運行乘客實例,它將啟動它:
#!/bin/bash
/usr/sbin/lsof -i :82 > /home/var/www/site-owner/data/www/site.com/currenttest
if [ ! -s /home/var/www/site-owner/data/www/site.com/currenttest ];
then
cd /home/var/www/site-owner/data/www/site.com/current/
passenger start -p 82 -d -e production --user site-owner
fi
如果我從root ssh環境啟動它,則效果很好。 我嘗試從crontab啟動它,但沒有出現錯誤:“ passenger_loader.sh:第12行:passenger:未找到命令”。
經過數小時的搜尋,我發現root用戶和root控制台用戶的crontab具有不同的環境,但是無論如何,我不知道如何使crontab root用戶運行像root console用戶這樣的腳本。 我開始添加
source ~/.bash_profile
source ~/.bashrc
到腳本,但沒有任何改變。
我不知道這是否是解決方案,但它的工作方式就像我需要的一樣(我從bash開始):
#!/bin/bash
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
HOME=/root
PATH=/usr/local/rvm/gems/ruby-1.9.3-p374/bin:/usr/local/rvm/gems/ruby-1.9.3-p374@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p374/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
export HOME PATH
/usr/sbin/lsof -i :82 > /home/var/www/site-owner/data/www/site.com/currenttest
if [ ! -s /home/var/www/site-owner/data/www/site.com/currenttest ];
then
# passenger down
date
#. "/usr/local/rvm/scripts/rvm"
rvm use 1.9.3
cd /home/var/www/site-owner/data/www/site.com/current/
passenger start -p 82 -d -e production --user site-owner
fi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.