我已根据https://github.com/ajaxorg/cloud9上的说明将Cloud9 IDE下载到我的Mac上,一切正常。但是,我似乎无法让它在后台运行,通过bash脚本启动:
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
...不会退出脚本。
我尝试下载“forever”(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 :(得分: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
我正在测试以下示例:
[kaero@54221-2 ~]$ SF="sudo "
[kaero@54221-2 ~]$ FS=" aux"
[kaero@54221-2 ~]$ $SF`ps`$FS
Password:
sudo: PID: command not found
[kaero@54221-2 ~]$ $SF"ps"$FS
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...