我在 Linux 上有一个远程服务器。如何编写在服务器上运行的 Python 脚本。
我通过 WinSCP 连接并在 Visual Studio Code 中打开 Python 脚本。编辑...要运行脚本,我通过 ssh 通过 patty 连接。我运行脚本,查看控制台......
例如,我运行FFMPEG命令,启动它,大约需要一个小时。如果我在脚本中做错了什么,忘记它或其他什么。
我关闭控制台,结束 ffmpeg 进程。我不知道如何阻止这个过程,如果有这种可能,那如何阻止呢?打开两个控制台,以便在第二个控制台中执行命令来完成该过程?在第一个控制台中,ffmpeg进程不允许我编写命令......
我用一个新的打开小馅饼,用一个新的启动 ffmpeg...在此之前我在脚本中进行更正...
所以每次...
如果您的 Linux 计算机有额外的 2 GB RAM,请使用扩展https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh直接在服务器上进行调试和编码。逐步调试、启动、按钮中断等等都将可用。
该组合
ctrl+z
会停止进程并将其输出回 shell。您可以添加一个命令kill %1
,其中 %1 是后台进程的编号。您可以使用 bg 和 fg 命令恢复该进程。 bg - 该命令在后台运行,如果它没有进入控制台,那么您可以同时执行其他操作。 fg 命令在前台恢复该命令。您的工作流程非常正常,但有几种方法可以使其更加高效,特别是在处理像 FFMPEG 这样的长时间运行的流程时。以下是一些建议:
1. 使用
screen
或tmux
这两个实用程序都允许您创建终端会话,即使在断开连接后也可以继续运行。您可以在一个会话中运行 FFMPEG,并稍后连接到它以检查状态或停止该进程。
安装:
或者
用法
screen
:screen
在终端中运行该命令。ffmpeg
。Ctrl + A
,然后按D
。screen -r
。用法
tmux
:tmux
在终端中运行。ffmpeg
。Ctrl + B
,然后按D
。tmux attach
。2.后台运行
&
您可以通过在命令末尾添加以下内容在后台启动 FFMPEG 进程:这将允许您继续使用控制台。要停止进程,请使用以下命令
jobs
列出所有后台进程,然后执行kill
并指定进程 ID (PID):3.使用方法
nohup
该命令
nohup
允许您启动即使在退出 SSH 会话后仍继续运行的进程。执行结果将被写入文件
nohup.out
。4. 日志与输出
运行 FFMPEG 时,您可以将输出重定向到文件,这样您就不会错过重要的状态消息:
这将创建一个文件
output.log
,所有输出都将写入其中。5. 停止进程的信号
如果你想停止进程,你可以使用
kill
信号:kill <PID>
.kill -9 <PID>
强制其终止。使用示例
ffmpeg
ffmpeg
以下是保存日志并在后台运行的命令示例: