QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1975|回复: 4

遇到一个奇怪问题看不到printf的打印信息

[复制链接]
发表于 2006-5-9 16:21:12 | 显示全部楼层 |阅读模式
我的应用程序放在在rc里面执行, 如  /bin/myprogram  &
  当系统启动到shell后就看不到程序的打印信息.但当我把程序kill,从新启动后 就能够看到我的打印信息, 不知道是什么原因??
 楼主| 发表于 2006-5-31 18:57:42 | 显示全部楼层
在系统启动时,在rc里启动的后台程序都不能看到打印信息。如果换成前台,就能看到。
看起来象跟控制终端有关系。查启动文件 inittab,发现,串口终端初始化在 rc之后。就是说应用程序运行之后,才开始运行tty的shell。
::sysinit:/etc/init.d/rcS
::askfirst:/sbin/agetty -L /dev/tts/0

  所以决定把程序放到 shell的profile里,当登录后自动运行程序。没有问题能看到打印信息,一切正常。如果不需要登录不就成了“全自动"了吗。所以修改
::sysinit:/etc/init.d/rcS
#::askfirst:/sbin/agetty -L /dev/tts/0
::askfirst:/bin/ash
但当不需登录直接进入shell后,没有动静了,发现没有调用我的profile, 不得其解(郁闷当中).难道一定要login一次,然后修改为
::sysinit:/etc/init.d/rcS
#::askfirst:/sbin/agetty -L /dev/tts/0
::askfirst:/bin/ash
:nce:/bin/login root
启动,这下能够自动登录进入我得shell,profile也被调用了,程序正常运行。能看到打印信息。但是缺出现了两个shell。我用洒 ps命令一查发现了两个ash
  44 root        488 S   -ash
129 root        448 S   /bin/ash
,虽然现在解决了程序的自动后台运行没有问题。但总觉得怪怪的。不知到什么地方出现了 问题
回复

使用道具 举报

发表于 2006-6-6 23:26:16 | 显示全部楼层
For shell, it got some kind of ???shrc file which will be automatically called when initiated the shell. Please take a try.
回复

使用道具 举报

发表于 2006-6-7 08:52:30 | 显示全部楼层
或许有以下2个可能:
1.printf("\n"); 你没有使用\n
2.程序运行的控制台,不是当前控制台.
回复

使用道具 举报

发表于 2006-6-16 11:28:43 | 显示全部楼层
rc里面所有stdout是在console上,而不是terminal。

一个linux/unix系统只有一个console,而可以有多个terminal。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 14:23 , Processed in 0.037120 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表