提前为这个可能很简单的问题道歉。我有一些关于使用 ssh 运行程序的基本问题,我无法通过 Google 解决。我使用的是 Unix(通过 Mac OS 10.6.7 上的“终端”程序)。
我正在使用 ssh 访问另一台机器。到达那里后,我正在运行一些代码。这会导致输出文件出现在该机器上的目录中。我通过执行“control C”终止运行。我通过执行以下操作来删除输出文件:
find . -type f -name "*.vtk" -exec rm -f {} \;
问题是:
拥有这台机器的人告诉我,我的代码有多个版本在运行。我不明白为什么我没有通过执行“控制 C”来停止这些版本。有人能解释一下吗?
另外(这可能与第一个问题有关),当我运行上面的“find”命令来删除输出文件时,如果我等待几秒钟/几分钟,一些输出文件会再次出现!这可能与我无法终止的正在运行的代码的“幽灵”版本有关吗?
如果有人能告诉我如何确保我已终止所有运行以及如何从目录中删除所有 vtk(或其他后缀)输出文件,我将不胜感激。此外,任何有关所有这些 ssh 内容的在线资源的建议都非常受欢迎。非常感谢。
答案1
如果您不使用类似工具,则screen
一旦您从 ssh 会话中注销,所有正在运行的程序都将终止。Ctrl + C
还将终止当前正在运行的前台进程。如果您启动了一些后台进程(在&
命令末尾使用,或者Ctrl + z, bg
您可以通过键入 使它们成为前台进程)fg
。
该程序ps
允许您查看当前正在运行的程序。在那里您应该会看到任何“仍在运行的实例”。您可以使用kill -9 <PID>
或终止它们killall -9 <prog-name>
。