如何关闭Gnu进程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何关闭Gnu进程?相关的知识,希望对你有一定的参考价值。
我正在尝试使用Perl和用于Linux的Chart::Gnuplot
模块创建一个脚本来表示一系列数据。它是这样的:
use strict;
use warnings;
use Chart::Gnuplot;
die "Linux check" if ( $^O ne 'linux' );
my $chart = Chart::Gnuplot->new(
terminal => 'x11',
title => {
text => "GRAPH",
font => "Arial, 20"
},
xlabel => {
text => "X AXIS",
font => "arial, 20",
offset =>"0,-1"
},
ylabel => {
text => "Y AXIS",
font => "arial, 20",
offset =>"-6,0"
},
);
my $dataSet = Chart::Gnuplot::DataSet->new(
xdata => @x_data,
ydata => @y_data,
style => "points",
);
$chart->plot2d($dataSet);
exit;
当我从Eclipse运行它时,脚本工作正常并且图形显示正确,但该过程不会终止(关闭Gnuplot窗口将不起作用)。当我在终端上运行它时会发生类似的事情。
有问题的线是$chart->plot2d($dataSet)
没有它可以正确终止。关闭窗户后我该怎么做才能结束它?
答案
Chart::Gnuplot
运行gnuplot
与相同的stdin和其他文件描述符打开。绘制图片后,gnuplot
读取stdin等待更多命令。
一种解决方案是在绘制之前简单地将stdin重定向到perl程序中的/dev/null
。这也会使图像立即显示和消失,因此您还应添加persist
选项。以下是要更改的2行:
my $chart = Chart::Gnuplot->new(
terminal => 'x11 persist',
...
open(STDIN, "<", "/dev/null") or die "Can't open /dev/null: $!";
$chart->plot2d($dataSet);
以上是关于如何关闭Gnu进程?的主要内容,如果未能解决你的问题,请参考以下文章
java 简单的代码片段,展示如何将javaagent附加到运行JVM进程