【发布时间】:2015-07-26 02:27:57
【问题描述】:
我正在编写一个“简单”脚本来启动 django 服务器,在后台启动它,然后在我开发时启动 firefox。
我见过</dev/null & 技巧,它可以在命令行上运行。但是当我在我的脚本中使用它时,它仍然挂在启动的服务器上。使用 ctrl-z 和 bg 命令进行后台处理只会使脚本后台运行,而不是命令。
有没有办法可以将 django 传递给“不要占用输入”标志?或者我可以在脚本中以某种方式将其作为背景,而不是将& 放在它的末尾?或者只是告诉脚本不要在单独的会话中运行它?
这是我的完整脚本(它充满了硬核丑陋,如果我可以让它工作,它可能会得到美化):
SETTING_ENV=$1
if [ "$PWD" = "/home/$USERNAME/PROJECT/" ]; then
pid=$(for pid in $(pidof -x "python"); do ps -p $pid -o pid,cmd --no-heading; done| grep [m]anage|head -1|cut -d" " -f2)
if [ -z $pid ]; then
python ./manage.py runserver --settings=project.settings.$SETTING_ENV < /dev/null &
else
echo "Server still running on : $pid"
fi
pids=$(pidof -x firefox)
for pid in $pids; do
echo $pid
if [ -z $pid ]; then
echo "starting firefox"
firefox --new-window localhost:8000 &
else ecjp "Firefox already running on pid: $pid"
fi
done
else
echo "$PWD is not /home/$USERNAME/PROJECT";
fi
【问题讨论】:
-
我可以检查这些更新来自有类似问题的人吗?这听起来应该有一个简单的解决方案 - 没有很多支持?
标签: python django bash backgrounding