我正在运行服务器,需要使用参数执行以下命令。这些脚本目前运行良好,但问题是当我运行脚本时,我无法返回到控制台。它一直在控制台中运行。如果我强行停止它,那么这个过程也会停止。
我想继续运行该进程并返回控制台。
#!/bin/sh
php /home/stjc/app/artisan queue:listen --timeout=60 --tries=5
由于
答案 0 :(得分:2)
在后台运行该流程:
#!/bin/sh
(php /home/stjc/app/artisan queue:listen --timeout=60 --tries=5) &
尝试在原始命令的两侧添加一个&符号(&
),并使用括号。
修改强>
:
是一个内置的shell,这意味着NOP取决于你的操作系统它可能是一个问题尝试在php命令中转义它并查看它是否适合你
#!/bin/sh
(php /home/stjc/app/artisan queue\:listen --timeout=60 --tries=5) &
还强烈建议将php
翻译的完整路径。
答案 1 :(得分:1)
只需在命令后附加&
,shell就会在后端运行作业。它将返回类似的内容:[1] 3633。[1]
表示shell作业ID,{{1}表示操作系统进程ID。如果要停止任务,只需输入3633
即可。
kill 3633
答案 2 :(得分:1)
您可以使用&
at the end of your command在后台运行进程,或使用nohup
命令将进程与终端完全断开连接,以便即使在退出shell后它也能继续运行。
错误: command not found
是一个单独的问题。 :
之前的文本是环境找不到的命令。因为:
之前没有任何东西你试图启动一个由空字符串组成的命令;这是一个例子:
$ foo
-bash: foo: command not found
$ ''
-bash: : command not found
可能这是因为你有一个你用作命令的miss-set变量,因此有些东西试图执行empty-string命令(当然,它不存在)。