返回

如何使用 SSH 和 nohup 在服务器上运行 PHP 脚本并传递参数?

php

使用 SSH 和 nohup 在服务器上运行 PHP 脚本并传递参数

作为一名经验丰富的程序员,我经常需要在服务器上执行 PHP 脚本。有时,这些脚本很长或需要很长时间才能运行。为了避免直接在终端中执行,我们可以使用 nohup 命令在后台运行它们。

nohup 是什么?

nohup 是一个 Unix 命令,它允许我们在退出终端连接后继续运行进程。当使用 nohup 运行脚本时,脚本将被放入后台,并且标准输出和错误输出将被重定向到指定的文件中。

如何使用 SSH 和 nohup 在服务器上运行 PHP 脚本

要使用 SSH 和 nohup 在服务器上运行 PHP 脚本,我们需要按照以下步骤进行操作:

  1. 生成并添加 SSH 密钥
    首先,我们要生成一对 SSH 密钥并将其添加到服务器。这将允许我们使用 SSH 密钥认证连接到服务器,而不是使用密码。

  2. 使用 nohup 运行 PHP 脚本
    要使用 nohup 运行 PHP 脚本,我们可以使用以下命令:

    nohup php <script_name>.php <args> 1>/dev/null 2>&1 &
    

    其中:

    • <script_name>.php 是你要运行的 PHP 脚本的名称。
    • <args> 是要传递给脚本的参数(如果需要)。
    • 1>/dev/null 重定向标准输出到 /dev/null
    • 2>&1 重定向标准错误输出到标准输出。
    • & 将脚本放在后台运行。

    例如,要使用 nohup 在服务器上运行 local_php_script.php 脚本并传递参数 prod,我们可以使用以下命令:

    nohup php local_php_script.php prod 1>/dev/null 2>&1 &
    

总结

通过使用 nohup 命令,我们可以轻松地将 PHP 脚本放入后台在服务器上运行,而无需担心它们在断开 SSH 连接后就会停止运行。我们可以使用 SSH 将脚本从客户端作为参数传递给服务器。按照本文中的步骤,你可以轻松实现这一需求,从而简化你的服务器端开发流程。

常见问题解答

  1. 我如何查看脚本的输出?
    脚本的输出存储在 nohup.out 文件中。要查看输出,可以使用 cat nohup.out 命令。

  2. 如果脚本崩溃了怎么办?
    如果脚本崩溃了,可以在 nohup.err 文件中找到错误信息。

  3. 我可以在没有 SSH 密钥的情况下使用 nohup 吗?
    可以,但你需要使用密码连接到服务器。

  4. 我可以在交互式脚本中使用 nohup 吗?
    不,nohup 不能在交互式脚本中使用。

  5. 如何在 nohup 中传递多个参数?
    要传递多个参数,可以使用空格将它们分开。例如,以下命令将传递两个参数 proddev

    nohup php local_php_script.php prod dev 1>/dev/null 2>&1 &