uboot传递虚拟控制台(tty1)给kernel,导致linux启动脚本中的程序无法后台运行

yu.sang 2020-12-01 03:30:26
使用arm的嵌入式开发板,因为应用使用了串口,便把boot中的启动参数改为了虚拟控制台console=tty1.
以此带来一些莫名其妙的问题:
在rcS文件中执行程序 work.elf时。
1. work.elf > /dev/null 2>&1 &
work.elf程序起不来
2. work.elf &
work.elf程序依旧起不来
3. work.elf ,work.elf >/dev/null 2&1
OK

问题:
1. 不能后台运行的原因是啥?
2. 如果使用work.elf > /dev/null 2&1的方式,会不会有问题? 因为不是后台运行,程序会不会被杀掉啊?

...全文
38192 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyaoweizi999 2021-03-17
  • 打赏
  • 举报
回复
请问问题解决了吗?需要改什么参数才可以自启动后台运行?我也是碰到在自启动后台运行打开串口失败的情况
yu.sang 2020-12-09
  • 打赏
  • 举报
回复
自己来顶一个吧
yu.sang 2020-12-03
  • 打赏
  • 举报
回复
引用 6 楼 KY 的回复:
如果为程序指定了标准输入输出,后台自然运行不起来。指定为/dev/null,后台就可以运行了。
我试过这种方式:work.elf > /dev/null 2>&1 & 起不来,您的意思是 “work.elf > /dev/null & ” 这样么?
Kyph 2020-12-03
  • 打赏
  • 举报
回复
如果为程序指定了标准输入输出,后台自然运行不起来。指定为/dev/null,后台就可以运行了。
Kyph 2020-12-03
  • 打赏
  • 举报
回复
对于会话而言,有前台进城组,后台进程组,和控制台。前台进程组用控制台。后台进程组不用控制台。
yu.sang 2020-12-03
  • 打赏
  • 举报
回复
引用 3 楼 KY 的回复:
串口终端是ttyS 标准终端是tty 如果启动参数中不增加console选项,一般就是tty0。
感谢解答,小弟还是有疑问。 百度一下,tty0是指当前的登录console,tty1-tty9都是虚拟console.所以可能选择tty0和tty1类似。事实上,我改成tty1之前用的就是tty0,结果是一样的。 为什么使用tty0登录后,无法后台运行了呢? 是不是因为采用后台运行,控制台退出后被杀掉了,而不后台运行可以占住控制台? ---我猜测的。
Kyph 2020-12-03
  • 打赏
  • 举报
回复
串口终端是ttyS
标准终端是tty
如果启动参数中不增加console选项,一般就是tty0。
yu.sang 2020-12-01
  • 打赏
  • 举报
回复
因为我关闭了默认终端,只能通过telnet登录。在telnet的终端,怎么使用都没问题。
mouse_zhu 2020-12-01
  • 打赏
  • 举报
回复
如果是在终端手动 执行 work.elf & 会成功吗?

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧