2011-05-11 112 views
5

根據https://github.com/ajaxorg/cloud9上的說明,我已將Cloud9 IDE下載到我的Mac,並且一切正常。但是,我似乎無法得到它在後臺運行,通過bash腳本啓動:如何讓Cloud9 IDE在後臺運行?

bash腳本名爲「IDE」,有可執行的權限:

#!/usr/bin/env sh 
CLOUD_USER=`whoami` 
CLOUD_DIR="/Users/$CLOUD_USER/Sites/cloud9" 
CLOUD_PORT=3333 
CLOUD_WORKSPACE="/Users/$CLOUD_USER/Sites" 
CLOUD_ACTION="open" 
CLOUD_BEFORE="" 
CLOUD_AFTER="" 


case "$1" in 
    -b) 
     CLOUD_BEFORE="nohup " 
     CLOUD_AFTER="> /dev/null 2>&1 &" 
     ;; 
    .) 
     CLOUD_WORKSPACE=`pwd` 
     CLOUD_AFTER="-a $CLOUD_ACTION" 
     ;; 
    *) 
     if [ $1 ]; then 
      CLOUD_WORKSPACE=$1 
     fi 
     CLOUD_AFTER="-a $CLOUD_ACTION" 
     ;; 
esac 

$CLOUD_BEFORE`/usr/local/node/bin/node $CLOUD_DIR/bin/cloud9.js -p $CLOUD_PORT -w $CLOUD_WORKSPACE` $CLOUD_AFTER 

的想法是,你可以啓動這個幾種方法:

$ ide 

將啓動Cloud9並使用〜/ Sites文件夾作爲工作區啓動。或者,您可以通過運行指定工作區:

$ ide /path/to/workspace 

或在後臺運行的服務器:

$ ide -b 

......不退出腳本。

我試過下載「永遠」(https://github.com/indexzero/forever)。但是,當我永遠運行它時,它會佔用stdio並不會返回到命令提示符。

如果我在命令行中運行以下它在後臺運行,並正確地存在:

$ nohup /usr/local/node/bin/node /Users/{user}/Sites/cloud9/bin/cloud9.js -p 3333 -w /Users/{user}/Sites > /dev/null 2>&1 & 

但是,不是當我運行該腳本本身。

任何關於如何強制這個在後臺運行的想法?

+0

打開多個終端!只要在其中一個開放。 – Raynos 2011-05-11 22:26:58

+0

@Raynos第二個問題,你如何獲得它到_actually_掛接端口80? – jcolebrand 2011-05-11 22:34:19

+0

@drachenstern'$ node bin/cloud9.js -h'是幫助。 – Raynos 2011-05-11 22:41:13

回答

2

變線

$CLOUD_BEFORE`/usr/local/node/bin/node $CLOUD_DIR/bin/cloud9.js -p $CLOUD_PORT -w $CLOUD_WORKSPACE` $CLOUD_AFTER 

$CLOUD_BEFORE"/usr/local/node/bin/node $CLOUD_DIR/bin/cloud9.js -p $CLOUD_PORT -w $CLOUD_WORKSPACE "$CLOUD_AFTER 

我在下面的例子測試:

[[email protected] ~]$ SF="sudo " 
[[email protected] ~]$ FS=" aux" 
[[email protected] ~]$ $SF`ps`$FS 
Password: 
sudo: PID: command not found 
[[email protected] ~]$ $SF"ps"$FS 
USER  PID %CPU %MEM VSZ RSS TTY  STAT START TIME COMMAND 
... 
+0

是的,如果我直接在終端運行命令,它工作正常。但是,由於某種原因,它不適用於我的腳本。 – ejangi 2011-05-12 22:52:12