退出 bash 脚本但保持进程运行

Ach*_*ika 6 linux bash shell

我正在运行服务器,需要使用参数执行以下命令。这些脚本目前工作得很好,但问题是当我运行脚本时我无法返回到控制台。它在控制台中保持运行。如果我强行停止它,那么该过程也会停止。

我想继续运行该进程并返回到控制台。

#!/bin/sh
php /home/stjc/app/artisan queue:listen --timeout=60 --tries=5
Run Code Online (Sandbox Code Playgroud)

谢谢

ana*_*and 5

在后台运行该进程:

#!/bin/sh
(php /home/stjc/app/artisan queue:listen --timeout=60 --tries=5) &
Run Code Online (Sandbox Code Playgroud)

尝试&在原始命令两侧添加一个 & 符号 ( ),并在其两侧添加括号。

编辑:

:是一个内置的 shell,这意味着 NOP,具体取决于您的操作系统,这可能会出现问题,请尝试在 php 命令中转义它,看看它是否适合您

#!/bin/sh
(php /home/stjc/app/artisan queue\:listen --timeout=60 --tries=5) &
Run Code Online (Sandbox Code Playgroud)

php强烈建议您将完整路径提供给您的口译员。

  • @AchinthaSamindika `:` 是一个 shell 命令。您没有粘贴真实的代码;否则,您所描述的错误是不可能的。请发布真实的代码、真实的错误,并在描述您的配置时包含 PATH 的内容。 (3认同)
  • 不要试图逃避事情,只需引用它,例如“queue:listen”。也就是说,我不认为这是问题所在;`:` 除了作为命令之外不是特殊字符,因此如果它是参数的一部分,它就可以正常工作。例如,“echo foo:bar”就可以工作。 (2认同)