Commit | Line | Data |
4536f655 |
1 | #!/usr/local/bin/perl -s |
2 | |
3 | $line_cnt = 10 ; |
4 | $offset = 175 ; |
5 | $base_off = 0 ; |
6 | $xskip = ( $^O eq 'solaris' ) ? 600 : 500 ; |
7 | |
8 | my @children ; |
9 | |
10 | my $tail_dir = 'tail' ; |
11 | |
12 | $SIG{ 'INT' } = \&cleanup ; |
13 | |
14 | if ( $s ) { |
15 | |
16 | $ssfe = 'ssfe' ; |
17 | $prompt = '-prompt Stem:' ; |
18 | $echo = 'console_echo=1' |
19 | } |
20 | |
21 | -d $tail_dir or mkdir $tail_dir, 0722 or |
22 | die "can't create $tail_dir working directory" ; |
23 | |
24 | foreach my $log ( qw( foo bar bar_status ) ) { |
25 | unlink "$tail_dir/$log.log" ; |
26 | } |
27 | |
28 | |
29 | foreach $cmd ( split /\n/, <<EOT ) { |
30 | xterm -T Archive -n Archive -geometry 80x35+0+0 -e $ssfe $prompt run_stem $echo archive |
31 | xterm -T Monitor -n Monitor -geometry 80x35+$xskip+0 -e $ssfe $prompt run_stem $echo monitor |
32 | xterm -T Tail -n Tail -geometry 80x20+275+420 |
33 | EOT |
34 | |
35 | print "$cmd\n" ; |
36 | |
37 | @cmd = split ' ', $cmd ; |
38 | |
39 | s/:/: / for @cmd ; |
40 | |
41 | chdir $tail_dir unless $cmd =~ /run_stem/ ; |
42 | |
43 | fork_exec( @cmd ) ; |
44 | |
45 | sleep 2 ; |
46 | } |
47 | |
48 | while( <STDIN> ) { |
49 | |
50 | next unless /^q/i ; |
51 | |
52 | cleanup() ; |
53 | } |
54 | |
55 | sub cleanup { |
56 | |
57 | print "clean up\n" ; |
58 | |
59 | kill 9, @children ; |
60 | wait ; |
61 | exit ; |
62 | |
63 | } |
64 | |
65 | sub fork_exec { |
66 | |
67 | my( @exec ) = @_ ; |
68 | |
69 | if ( $pid = fork() ) { |
70 | |
71 | push @children, $pid ; |
72 | return ; |
73 | } |
74 | |
75 | exec @exec ; |
76 | } |