Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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
Linux execv和只运行应用程序之间的区别?_Linux - Fatal编程技术网

Linux execv和只运行应用程序之间的区别?

Linux execv和只运行应用程序之间的区别?,linux,Linux,我们有一个从inittab启动的存根,execv是我们的进程。(ARM Linux内核2.6.25) 测试进程时,只有从inittab和execv'd启动时,它才会失败。如果在命令行上启动,它每次都能正常工作 该流程大量使用SYS V IPC 我应该注意的两种启动方法之间有什么区别吗?这可能是环境变量的问题吗?如果是的话,考虑使用EXCEVE或EXCEL与适当的EVP参数。 < P>这是否是环境变量的问题?如果是这样,考虑使用EXCEVE或EXCEL带有适当的EVP参数。 < P>正如马修提到的

我们有一个从inittab启动的存根,execv是我们的进程。(ARM Linux内核2.6.25)

测试进程时,只有从inittab和execv'd启动时,它才会失败。如果在命令行上启动,它每次都能正常工作

该流程大量使用SYS V IPC


我应该注意的两种启动方法之间有什么区别吗?

这可能是环境变量的问题吗?如果是的话,考虑使用EXCEVE或EXCEL与适当的EVP参数。

< P>这是否是环境变量的问题?如果是这样,考虑使用EXCEVE或EXCEL带有适当的EVP参数。

< P>正如马修提到的,它可能是一个EnV变量问题。在两种情况下调用程序之前,请尝试转储yout env list-通过存根或“手动”

顺便说一句,如果你能提供更多关于你的程序为什么会崩溃的信息,这会有很大帮助。日志文件?核心转储/gdb?从execve返回值


编辑: 其他检查:是否确实要通过完全相同的参数列表(如果有参数)


为了回答你的问题,这两种方法没有区别。实际上,您的shell fork()并最终调用execve()来启动您的进程,向它提供手动提供的参数以及在shell中设置的环境变量。顺便说一句,当通过init启动程序时,它可能会在机器启动的早期阶段启动。您确信此时应用程序的良好运行一切就绪吗?

正如Matthew所提到的,这可能是一个环境变量问题。在两种情况下调用程序之前,请尝试转储yout env list-通过存根或“手动”

顺便说一句,如果你能提供更多关于你的程序为什么会崩溃的信息,这会有很大帮助。日志文件?核心转储/gdb?从execve返回值


编辑: 其他检查:是否确实要通过完全相同的参数列表(如果有参数)


为了回答你的问题,这两种方法没有区别。实际上,您的shell fork()并最终调用execve()来启动您的进程,向它提供手动提供的参数以及在shell中设置的环境变量。顺便说一句,当通过init启动程序时,它可能会在机器启动的早期阶段启动。您确定一切都准备好了,可以让您的应用程序在此时良好运行吗?

环境变量建议非常好-具体地说,我会检查$PATH以确保找到您的依赖库(如果您有)。您可以检查的另一件事是,当作为inittab运行时,您是否在相同的uid/gid下运行?

环境变量建议非常好-具体地说,我会检查$PATH以确保找到您的依赖库(如果有)。您可以检查的另一件事是,当作为inittab运行时,您是否在相同的uid/gid下运行?

以及是否用shell脚本替换存根? 如果它在命令行中工作,那么它应该在shell脚本中工作,您可以知道它是存根还是在inittab中

这可能是一个控制性的tty问题吗


shell脚本的另一个优点是,您可以编辑它和您的程序,查看它在哪里失败,以及是否用shell脚本替换存根? 如果它在命令行中工作,那么它应该在shell脚本中工作,您可以知道它是存根还是在inittab中

这可能是一个控制性的tty问题吗


shell脚本的另一个优点是您可以编辑它,并且您的程序可以查看它在哪里失败,这是一个不匹配的内核/库问题。完全重新编译后,所有内容都已清理。

是一个不匹配的内核/库问题。完全重新编译后,所有内容都已清理干净