Ruby 如何终止在xterm中执行的命令
我想在xterm窗口中控制shell命令的执行。 这是一个示例代码(Ruby): 但是,xterm窗口不会被终止:Ruby 如何终止在xterm中执行的命令,ruby,linux,process,xterm,Ruby,Linux,Process,Xterm,我想在xterm窗口中控制shell命令的执行。 这是一个示例代码(Ruby): 但是,xterm窗口不会被终止: $ ./tst2.rb pid is: 26939 $ ps aux | grep xterm | grep -v grep user 26939 0.0 0.0 4508 800 pts/3 S 13:11 0:00 sh -c xterm -e 'while true; do echo -n .; sleep 1; done' user 2
$ ./tst2.rb
pid is: 26939
$ ps aux | grep xterm | grep -v grep
user 26939 0.0 0.0 4508 800 pts/3 S 13:11 0:00 sh -c xterm -e 'while true; do echo -n .; sleep 1; done'
user 26943 0.6 0.0 72568 6280 pts/3 S 13:11 0:00 xterm -e while true; do echo -n .; sleep 1; done
$ kill 26939
$ ps aux | grep xterm | grep -v grep
user 26943 0.1 0.0 72568 6280 pts/3 S 13:11 0:00 xterm -e while true; do echo -n .; sleep 1; done
如何终止xterm窗口?您需要找到xterm进程的PID才能终止它。在您的情况下,最简单的方法是绕过
sh
过程,因为您不需要它。要执行此操作,必须在数组中将参数传递给exec
,而不是作为命令行:
exec('xterm', '-e', 'while true; do echo -n .; sleep 1; done')
exec('xterm', '-e', 'while true; do echo -n .; sleep 1; done')