2010-12-16 188 views
17

如何防止gnome终端在给定命令退出后退出?防止Gnome终端执行后退出

我从cronjob调用gnome-terminal,以便创建一个用户可访问的终端。终端最初被赋予一个特定的程序来运行。例如

gnome-terminal --tab -e "/usr/bin/myprog" 

这工作正常,除了当“myprog”退出时,gnome终端也一样。我如何保持它运行,但只是回到终端提示?

+6

同一问题的另一个讨论:http://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution – 2010-12-16 22:39:17

+1

@Ignacio,这是一个常用术语。谷歌显示了超过10万个结果... – Cerin 2010-12-28 21:29:39

+0

@Ignacio,术语“shell”和“终端”通常是同义词。如果你的词汇或技术环境不同,那很好。对困惑感到抱歉。 – Cerin 2010-12-30 19:32:32

回答

21

试试这个:

gnome-terminal --tab -e "/bin/bash -c '/usr/bin/myprog; exec /bin/bash -i'" 
+0

非常简单。谢谢。 – Cerin 2010-12-17 14:30:36

3

这样创建一个shell脚本:

#!/bin/bash 
# myprog-wrapper.sh - runs /usr/bin/myprog and then starts a new bash session 
/usr/bin/myprog 
/bin/bash 

给shell脚本执行权限。

然后设置你的cron作业,改为调用直接调用myprog这个脚本:

gnome-terminal --tab -e "/path/to/myprog-wrapper.sh" 

替换/bin/bash与您所选择的外壳。

2

你可以使用xterm或rxvt的Unicode的,而不是GNOME终端,二者均具有用于此目的的-hold选项。

21

alt text

创建一个配置文件(即保持),设置“当命令退出:按住终端开放”,然后

$ gnome-terminal --tab --profile hold -e /usr/bin/myprog 
+0

应该有一些方法可以通过仅通过命令行设置“hold terminal open”选项来创建配置文件。 – 2016-12-03 12:20:49

+0

根据您的gnome终端,您可以使用gconf或gsettings来设置或获取该属性的临时值:'gconftool-2 -g/apps/gnome-terminal/profiles/Profile0/exit_action' – 2016-12-05 16:58:02