在后台运行进程是否会降低其权限?

时间:2013-09-16 14:46:58

标签: linux embedded

我使用的是运行linux的嵌入式系统。当我在forground中运行已编译的C程序时,它可以正常工作。但是,当我添加'&'时在程序调用之后,要使其在后台运行,某些功能无法正常工作。停止工作的主要功能是使用'read'函数(unistd.h),用于从套接字读取。

在后台运行进程是否会降低其权限? 还有什么可能导致这种行为?

编辑:     该函数使用'select'和'read'函数从用于接收CANbus消息帧的套接字读取。收到数据后,我们会对其进行分析并将字符串“回显”为.txt文件,以充当数据记录器。在前台运行时,会创建并成功添加文件,但在后台时,不会创建/附加文件。

3 个答案:

答案 0 :(得分:5)

在后台前台运行流程之间的唯一区别是与终端的交互。

通常,当您对某个进程进行后台处理时,stdin会断开连接(它不再从键盘读取输入),并且您无法再向该进程发送键盘快捷键信号,如Ctrl-C / Ctrl-D。 / p>

除此之外没有任何变化,没有任何权限或优先级被更改。

答案 1 :(得分:1)

不,进入后台时,进程没有更改其持久性。

答案 2 :(得分:0)

内部发生的事情是在进程代码开始执行之前,文件描述符0,1,2(stdin,out,err)将指向/ dev / null而不是通常的文件。

同样,如果您使用>/file/pathstdout描述符将指向该特定文件

您可以使用

进行验证
ls -l /proc/process_number/fd