我正在使用vte_terminal_fork_command_full函数来启动带有一些命令行参数的新终端
vte_terminal_fork_command_full(
VTE_TERMINAL(term->vte),
VTE_PTY_DEFAULT,
NULL,
command_argv,
NULL,
G_SPAWN_SEARCH_PATH,
NULL,
NULL,
&term->pid,
&gerror))
command_argv包含唯一的一个元素
command_argv[o] = 'ls'
ls命令执行得很好,但是终端必须关闭,因为已经使用回调处理了子退出信号
g_signal_connect(G_OBJECT(term->vte), "child-exited",
G_CALLBACK(child_exited), NULL);
有人知道为什么发出这个信号?我怎么能避免它?
答案 0 :(得分:0)
当你的孩子进程退出时,你会得到一个孩子退出的信号 - 这里没有什么可讨论的。如果你想让终端窗口保持打开状态,要么不要连接信号,要么编写一个执行ls
和sleep 60
的shell脚本,调用该脚本,你需要在60秒前完成窗户关闭。