
我已经看到了</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命令后运行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)