On 8/16/2010 10:11 PM, Lg Lg wrote: > Hello: > > I'm working on a dialog manager and I'm stuck at the part where I need > to launch a terminal process and also kill it. > This is what I have so far. > > Launch: > @terminal_pid = IO.popen('gnome-terminal') > Kill > Process.kill :SIGTERM, @terminal_pid.pid if !@terminal_pid.nil? > > That method seems to work for stuff such as google-chrome, gcalctool, > pidgin, however it has no effect on gnome-terminal nor gedit. > > The Ruby script runs within a terminal window itself so I have no > interest in "kill -9 'gnome-terminal'". I am trying to kill only that > specific @terminal_pid > > Can anyone explain what is going on or a way of fixing it? > > Thank you in advance! > > PS: > Processes such as gnome-terminal are free to ignore sigterm, and many do. If you want to force the process to die, you want sigkill (the equivalent of kill -9). Good manners says you should first try sigterm to give a process a chance to exit gracefully before sending sigkill.