blob: 766627f4c3ccc25fbcd87f8670ff29e8d87a25e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# $Id: exec-clean.pl,v 1.6 2002/07/04 13:18:02 jylefort Exp $
use strict;
use Irssi 20020121.2020 ();
use vars qw($VERSION %IRSSI);
$VERSION = "1.01";
%IRSSI = (
authors => 'Jean-Yves Lefort',
contact => 'jylefort\@brutele.be, decadix on IRCNet',
name => 'exec-clean',
description => 'Adds a setting to automatically terminate a process whose parent window has been closed',
license => 'BSD',
url => 'http://void.adminz.be/irssi.shtml',
changed => '$Date: 2002/07/04 13:18:02 $ ',
);
# /set's:
#
# autokill_orphan_processes
#
# guess :)
#
# changes:
#
# 2002-07-04 release 1.01
# * signal_add's uses a reference instead of a string
#
# 2002-04-25 release 1.00
# * increased version number
#
# 2002-01-28 initial release
#
# todo:
#
# * kill the process using a better method (TERM -> sleep -> KILL etc)
use Irssi::UI;
sub window_destroyed {
my ($window) = @_;
foreach (Irssi::UI::processes()) {
if ($_->{target_win}->{refnum} == $window->{refnum}
&& Irssi::settings_get_bool("autokill_orphan_processes")) {
kill 15, $_->{pid};
return;
}
}
}
Irssi::signal_add("window destroyed", \&window_destroyed);
Irssi::settings_add_bool("misc", "autokill_orphan_processes", 1);
|