如何使用 SSH 和 nohup 在服务器上运行 PHP 脚本并传递参数?
2024-03-13 22:36:04
使用 SSH 和 nohup 在服务器上运行 PHP 脚本并传递参数
作为一名经验丰富的程序员,我经常需要在服务器上执行 PHP 脚本。有时,这些脚本很长或需要很长时间才能运行。为了避免直接在终端中执行,我们可以使用 nohup
命令在后台运行它们。
nohup 是什么?
nohup
是一个 Unix 命令,它允许我们在退出终端连接后继续运行进程。当使用 nohup
运行脚本时,脚本将被放入后台,并且标准输出和错误输出将被重定向到指定的文件中。
如何使用 SSH 和 nohup 在服务器上运行 PHP 脚本
要使用 SSH 和 nohup
在服务器上运行 PHP 脚本,我们需要按照以下步骤进行操作:
-
生成并添加 SSH 密钥
首先,我们要生成一对 SSH 密钥并将其添加到服务器。这将允许我们使用 SSH 密钥认证连接到服务器,而不是使用密码。 -
使用 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 将脚本从客户端作为参数传递给服务器。按照本文中的步骤,你可以轻松实现这一需求,从而简化你的服务器端开发流程。
常见问题解答
-
我如何查看脚本的输出?
脚本的输出存储在nohup.out
文件中。要查看输出,可以使用cat nohup.out
命令。 -
如果脚本崩溃了怎么办?
如果脚本崩溃了,可以在nohup.err
文件中找到错误信息。 -
我可以在没有 SSH 密钥的情况下使用 nohup 吗?
可以,但你需要使用密码连接到服务器。 -
我可以在交互式脚本中使用 nohup 吗?
不,nohup 不能在交互式脚本中使用。 -
如何在 nohup 中传递多个参数?
要传递多个参数,可以使用空格将它们分开。例如,以下命令将传递两个参数prod
和dev
:nohup php local_php_script.php prod dev 1>/dev/null 2>&1 &