python – 允许命令在bash脚本中后台执行django runserver命令后运行?

python – 允许命令在bash脚本中后台执行django runserver命令后运行?,第1张

概述我正在编写一个’简单’脚本来启动 django服务器,然后启动firefox,然后启动它. 我已经看到了</dev/null &技巧,并且可以在命令行上运行.但是当我在我的脚本中使用它时,它仍然挂在服务器上.使用ctrl-z和bg命令进行后台处理只会显示脚本而不是命令. 有没有办法让django传递’Do not hog input’标志?或者我可以通过某种方式在脚本中添加背景,而不是放置&在它结 我正在编写一个’简单’脚本来启动 django服务器,然后启动@R_419_5105@,然后启动它.

我已经看到了</dev/null &技巧,并且可以在命令行上运行.但是当我在我的脚本中使用它时,它仍然挂在服务器上.使用ctrl-z和bg命令进行后台处理只会显示脚本而不是命令.

有没有办法让django传递’Do not hog input’标志?或者我可以通过某种方式在脚本中添加背景,而不是放置&在它结束?或者只是告诉脚本不要在单独的会话中运行它?

这是我的完整脚本(它充满了硬核丑陋,如果我可以让它工作,它可能会得到美化):

SETTING_ENV=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 @R_419_5105@)    for pID in $pIDs; do        echo $pID        if [ -z $pID ]; then             echo "starting @R_419_5105@"             @R_419_5105@ --new-window localhost:8000 &        else ecjp "@R_419_5105@ already running on pID: $pID"        fi    doneelse    echo "$PWD is not /home/$USERname/PROJECT";fi
解决方法 您可以将所有命令放在括号中,如下所示:

(python ./manage.py runserver --settings=project.settings.$SETTING_ENV < /dev/null &)

当您在括号之间运行命令时,它将创建一个新的子shell,因此当您退出shell时,该命令将继续运行.

或者您也可以使用disown或nohup:

python ./manage.py runserver --settings=project.settings.$SETTING_ENV < /dev/null & disown

nohup python ./manage.py runserver --settings=project.settings.$SETTING_ENV < /dev/null &
总结

以上是内存溢出为你收集整理的python – 允许命令在bash脚本中后台执行django runserver命令后运行?全部内容,希望文章能够帮你解决python – 允许命令在bash脚本中后台执行django runserver命令后运行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1197299.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存