2011-05-11 85 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