Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
top(bash):显示python脚本的名称,而不是";python“;_Python_Bash - Fatal编程技术网

top(bash):显示python脚本的名称,而不是";python“;

top(bash):显示python脚本的名称,而不是";python“;,python,bash,Python,Bash,我的问题是:我在远程机器的后台运行了很多python脚本。有些需要很多天。当我键入top-U username检查哪个脚本结束了,哪个脚本没有结束时,我会得到一个长列表,如下所示: 54658 user 20 0 7963464 2.9g 13684 R 100.3 0.8 5921:33 python3 54982 user

我的问题是:我在远程机器的后台运行了很多python脚本。有些需要很多天。当我键入
top-U username
检查哪个脚本结束了,哪个脚本没有结束时,我会得到一个长列表,如下所示:

54658 user   20   0 7963464   2.9g  13684 R 100.3  0.8   5921:33 python3                                                                          
54982 user   20   0 6243164   1.2g  13696 R 100.3  0.3   5920:46 python3 
98740 user   20   0  737256 508340   5040 S   0.0  0.1  5226:56 python
问题是,正如您所看到的,每个进程id都有相关的命令,
python
(或
python3
)。这使得无法理解进程id和脚本之间的对应关系。我真的很想在那里显示进程的名称(就像运行用C编写的可执行文件时那样)。有什么办法可以得到它吗

请注意:

1) 正如我建议的那样,我尝试通过
chmod+xscriptname
使脚本本身成为一个可执行文件,但没有得到任何改进。我仍然看到
python3

2) 如果我按照建议执行ps-U username-o pid,cmd,我会得到一个冗长的进程列表,这并不是很方便


这对我来说似乎很奇怪,但我一直在寻找它,似乎没有其他类似的问题,所以它不应该是重复的。如果是,请将答案链接到我

一个简单的
grep
会对你有所帮助

ps -axo pid,cmd | grep [p]ython
您甚至可以根据运行脚本的方式进行筛选

ps -axo pid,cmd | egrep '^[0-9]+ python .*'

请注意,这仅从
ps

的输出中过滤单词
python
top
命令有许多选项来调整其显示内容。在本例中,您可能希望使用
-c
选项查看用于启动脚本的实际命令行。那么,试试
top-c-U username

如何执行python脚本?您的流程对象是否有权访问cmdline参数?
ps-U uname-o pid,cmd | egrep'progName1 | progName2 |……
?祝你好运。@TheIncorrigible1I通过
python3 name.py&
执行脚本。他们通常无权访问cmdline参数。@Sheller非常感谢。这并不完全是我所追求的,但它仍然是一个巨大的进步。特别是如果将
-c
选项添加到
top
,如
top-c-U用户名
,则将
'prog1 | prog2…'
替换为
*.py
,您应该能够看到启动脚本时运行的命令行,如
python3 name.py
。您是否有格式化要求,或者只需要检查脚本是否仍在运行?只需检查脚本是否正在运行即可。然而,@johnanderson在对这个问题的评论中给出了正确的答案。无论如何谢谢你,你的回答很有用!