Python 是否允许在bash脚本中将django runserver命令后台化后运行命令?

Python 是否允许在bash脚本中将django runserver命令后台化后运行命令?,python,django,bash,backgrounding,Python,Django,Bash,Backgrounding,我正在编写一个“简单”的脚本来启动django服务器,然后在我开发时启动firefox 我已经看到了这个技巧,它可以在命令行上运行。但是当我在脚本中使用它时,它仍然挂在服务器上。使用ctrl-z和bg命令进行背景设置时,只会对脚本进行背景设置,而不会对命令进行背景设置 有什么方法可以传递django一个“不占用输入”标志吗?或者我可以在脚本中以某种方式设置背景,而不是将&放在脚本末尾?或者只是告诉脚本不要在单独的会话中运行它 这是我的完整脚本(它是关于核心丑陋的,如果我能让它工作,它可能会被美化

我正在编写一个“简单”的脚本来启动django服务器,然后在我开发时启动firefox

我已经看到了这个技巧,它可以在命令行上运行。但是当我在脚本中使用它时,它仍然挂在服务器上。使用ctrl-z和
bg
命令进行背景设置时,只会对脚本进行背景设置,而不会对命令进行背景设置

有什么方法可以传递django一个“不占用输入”标志吗?或者我可以在脚本中以某种方式设置背景,而不是将
&
放在脚本末尾?或者只是告诉脚本不要在单独的会话中运行它

这是我的完整脚本(它是关于核心丑陋的,如果我能让它工作,它可能会被美化):

SETTING_ENV=$1
如果[“$PWD”=”/home/$USERNAME/PROJECT/”];然后
pid=$(对于$(pidof-x“python”)中的pid;do ps-p$pid-o pid,cmd——无标题;done | grep[m]manage | head-1 | cut-d”“-f2)
如果[-z$pid];然后
python./manage.py runserver--settings=project.settings.$SETTING_ENV
您可以将所有命令放在括号中,如下所示:

(python ./manage.py runserver --settings=project.settings.$SETTING_ENV < /dev/null &)
(python./manage.py runserver--settings=project.settings.$SETTING\u ENV
当您在括号之间运行命令时,它将创建一个新的子shell,因此当您退出shell时,该命令将继续运行

或者也可以使用disown或nohup:

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

nohup python./manage.py runserver--settings=project.settings.$SETTING_ENV
我可以检查一下这些更新是否来自有类似问题的人吗?这听起来好像应该有一个简单的解决方案-没有太多的UpVote?这两个(在本例中)都不会将控制权传递回脚本。我已经使用了你在其他地方提到的所有三种方法,我知道它们正常工作。在我为
/manage runserver
终止进程的情况下,
/start\u gui.sh:line 21:4932终止python./manage.py runderver--settings=project.settings.$SETTING\u ENV
python ./manage.py runserver --settings=project.settings.$SETTING_ENV < /dev/null & 
disown
nohup python ./manage.py runserver --settings=project.settings.$SETTING_ENV < /dev/null &