两个进程在使用相同命令和相同二进制文件运行时有不同的行为

两个进程在使用相同命令和相同二进制文件运行时有不同的行为

Ubuntu 服务器上有一个应用程序,它运行 FFMPEG 实例。该实例一直运行良好。

但是,当我在终端中使用相同的二进制可执行文件运行相同的命令时,它会在 3 或 4 分钟后退出,并显示日志“转换失败!”。

两个进程都以 root 用户身份运行,并且使用相同的.so库。

我还使用以下命令查看了正确进程的环境变量tr '\0' '\n' < /proc/62243/environ

LANG=en_US
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOME=/root
LOGNAME=root
USER=root
SHELL=/bin/sh
INVOCATION_ID=89a8c6c4b24d4a1b919e0cf529366876
JOURNAL_STREAM=9:308
LD_LIBRARY_PATH=/tmp/_MEIDvDVDH
AV_LOG_FORCE_COLOR=
AV_LOG_FORCE_256COLOR=

我创建了一个 shell 脚本来在命令之前设置环境变量:

export var1=value
export var2=value
export var3=value
.
.
.
my_command_here

问题仍然存在。

我不知道为什么。这成了一个令人头疼的问题。

任何帮助都将受到赞赏。

答案1

也许您可以运行strace ffmpeg并查看程序中止时正在调用什么系统调用以获取更多信息。

至于这个问题,我猜测可能是由于资源(例如内存)不足以运行第二个程序?

相关内容