Parent Directory | Revision Log
implemented correct start/stop logic (which now works!) and pushed debug state into $server::debug and file conf/debug for shared state between servers
1 | package screen; |
2 | |
3 | use warnings; |
4 | use strict; |
5 | use autodie; |
6 | |
7 | use File::Slurp; |
8 | |
9 | use log; |
10 | use server; |
11 | |
12 | our $debug = server::debug; |
13 | |
14 | my $screenrc = '/tmp/screenrc'; |
15 | |
16 | sub screen_daemon { |
17 | my $daemon = shift; |
18 | my $run = "sudo perl -I$server::base_dir/lib/PXElator -I$server::base_dir/lib -M$daemon -e " . $daemon . "::start"; |
19 | warn "# $daemon $run\n"; |
20 | qq| |
21 | |
22 | split |
23 | |
24 | screen -t $daemon $run |
25 | logfile $log::dir/pxelator.$daemon.log |
26 | log on |
27 | |
28 | focus down |
29 | |} |
30 | |
31 | write_file $screenrc, qq| |
32 | |
33 | autodetach off |
34 | altscreen off |
35 | defscrollback 10000 |
36 | startup_message off |
37 | |
38 | sessionname PXElator |
39 | |
40 | | |
41 | . screen_daemon('dhcpd') |
42 | . screen_daemon('tftpd') |
43 | #. screen_daemon('httpd') |
44 | . qq|remove|; |
45 | ; |
46 | |
47 | warn "screenrc $screenrc ", -s $screenrc; |
48 | |
49 | sub start { |
50 | |
51 | my $screen="screen -R PXElator -c $screenrc"; |
52 | warn $screen; |
53 | |
54 | chdir $server::base_dir; |
55 | |
56 | if ( defined $ENV{DISPLAY} ) { |
57 | exec "xterm -e $screen"; |
58 | } else { |
59 | exec $screen; |
60 | } |
61 | |
62 | } |
63 | |
64 | 1; |
ViewVC Help | |
Powered by ViewVC 1.1.26 |