簡體   English   中英

Shell腳本啟動乘客

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM