以某种方式退出 php 脚本,但保持其运行

以某种方式退出 php 脚本,但保持其运行

我正在运行一个 PHP 脚本,该脚本需要几个小时才能运行,并且我必须关闭计算机。我使用运行脚本php script.php

有什么方法可以在保持脚本运行的同时关闭该脚本吗? (它在服务器上运行)

我在 Mac 上通过 SSH 连接到远程 DigitalOcean 服务器。

注意:我想要实现的不是终止该进程,而是继续该进程。我知道我应该使用screenor nohup,但这是我的错,我之前没有这样做。

唯一的解决方案不是通过不关闭计算机来终止会话吗?

Ps.:与某人链接到的其他问题不重复。您可以看到我的问题的正确答案也与其他问题的正确答案不同。这里的问题是即使退出会话,也要保持在我的用户下运行的脚本运行。

答案1

Ctrl+Z暂停该过程。然后运行以下两个命令:

bg
disown %1

然后,您将能够注销并让进程在没有您的情况下继续运行。 您将无法再以任何方式与该进程交互(除了杀死它)。

将来,您可能会研究screennohup、 或tmux来了解长时间运行的流程。

答案2

如果已安装,您可以通过 nohup 命令完成此操作。

下面引用自https://www.cyberciti.biz/tips/nohup-execute-commands-after-you-exit-from-a-shell-prompt.html

nohup 命令语法:
语法如下

nohup command-name &

或者
nohup /path/to/command-name arg1 arg2 &

在哪里,

  • command-name :是 shell 脚本的名称或命令名称。您可以将参数传递给命令或 shell 脚本。
  • & : nohup 不会自动将其运行的命令置于后台;您必须通过以 & 符号结束命令行来显式地执行此操作。
  • crontab如果您还必须将其作为服务器上的作业定期运行,那么您也可能最好设置此作业。

    相关内容