LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 660|回复: 3

有点问题想请教一下,标题说不清。

[复制链接]
发表于 2010-7-12 19:31:20 | 显示全部楼层 |阅读模式
我要写一个程序,在不同机器上运行的,程序要打开当前系统的默认终端,并在其中执行一个脚本,
在脚本未结束之前,可以在终端看到脚本运行时的输出和进行正常输入,就像手动打开终端然后执行的一样。
有三个问题想要请教的:
1、如何才能得知该系统默认的终端是什么?比如,gnome-terminal,konsole等。
2、怎么在脚本结束后自动关闭终端?
3、怎么在脚本结束后不自动关闭终端,让其处在打开状态?

我的程序是用C写的,先谢谢啦,懂的大大,麻烦告知小弟一声~
发表于 2010-7-12 19:49:48 | 显示全部楼层
不需要这些东西……一般都是直接使用syslog。

如果你真想的看的,一般都是直接用
  1. tail -f
复制代码
看log,不用关就行……

再牛B一点就是直接用管道指向你打开的终端,自然会有输出,大不了广播就是了……打开个终端就能看到输出,有点过份……

方法千万种,反正我觉得这样比较那个,一般系统中VT有两个以上很正常,很少听人说哪个是默认的VT。我觉得你的想法有些不对头。能不能详细描述一下你具体想做什么?
回复 支持 反对

使用道具 举报

发表于 2010-7-13 08:59:02 | 显示全部楼层
你的程序打算怎么启动呢?如果是手动启动,那么启动你程序的那个控制台/虚拟控制台,就是和你程序默认连接的终端,输入输出都靠它.
如果是想实现程序在X环境下自动打开一个虚拟终端的效果,可以exec xterm吧,大多装了X的系统都会默认装xterm.
如果还是上面那种情况,父进程在fork时得到了子程序的PID(子进程就是你打开的xterm),父进程kill掉子进程就是了.
想让终端继续运行也没什么,父进程自己退出就是了,不会影响子进程,子进程会被init接管.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-13 10:24:36 | 显示全部楼层
嗯,谢谢,我还是慢慢来吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

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