1 |
cvsjoko |
1.1 |
#!/usr/bin/perl |
2 |
cvsjoko |
1.3 |
## |
3 |
|
|
## pshd -- Perl Shell Daemon |
4 |
|
|
## |
5 |
|
|
## Listens for incoming commands via Connectors |
6 |
|
|
## and dispatches them to handlers by passing them |
7 |
|
|
## to the CommandRouter or to its Core. |
8 |
|
|
## |
9 |
|
|
## Core |
10 |
|
|
## The core is used both in "Perl Shell" (psh.pl) |
11 |
|
|
## and "Perl Shell Daemon" (pshd.pl) |
12 |
|
|
## |
13 |
|
|
## Connector |
14 |
|
|
## It can use various Connectors |
15 |
|
|
## to recieve data (LocalFile, TcpHttp, TcpRpcXml). |
16 |
|
|
## |
17 |
|
|
## Core-Shell |
18 |
|
|
## pshd spawns a "Core-Shell" after start. It's Terminal is working the |
19 |
|
|
## same way as in a "Login-Shell" of the Perl Shell (psh.pl), except it's |
20 |
|
|
## commands are routed directly to the core. |
21 |
|
|
## |
22 |
|
|
## psh/pshd relies on POE to by asynchronous, it won't work without it! |
23 |
|
|
## |
24 |
|
|
## You will also need some POE-Components which may not be |
25 |
|
|
## available on CPAN and a bunch of "standard" Perl-Modules you |
26 |
|
|
## can download from there. Some POE versions on CPAN seem to |
27 |
|
|
## be not quite up-to-date sometimes, so i tried to include all needed |
28 |
|
|
## Perl-Modules for linux/win32 in '../perl-libs'. |
29 |
|
|
## |
30 |
|
|
## |
31 |
|
|
## $Id$ |
32 |
|
|
## |
33 |
|
|
## $Log$ |
34 |
|
|
## |
35 |
|
|
## |
36 |
cvsjoko |
1.1 |
|
37 |
|
|
use strict; |
38 |
cvsjoko |
1.3 |
use warnings; |
39 |
cvsjoko |
1.1 |
|
40 |
|
|
BEGIN { |
41 |
|
|
sub RUNNING_IN_HELL () { $^O eq 'MSWin32' } |
42 |
|
|
if (RUNNING_IN_HELL()) { |
43 |
cvsjoko |
1.2 |
push @INC, '../perl-libs/lib_win32'; |
44 |
cvsjoko |
1.1 |
} else { |
45 |
cvsjoko |
1.2 |
push @INC, '../perl-libs/lib_linux'; |
46 |
cvsjoko |
1.1 |
} |
47 |
cvsjoko |
1.2 |
push @INC, '../perl-libs/lib_poe'; |
48 |
cvsjoko |
1.1 |
} |
49 |
|
|
|
50 |
|
|
use lib 'lib'; |
51 |
|
|
use MJAM; |
52 |
|
|
use POE; |
53 |
|
|
|
54 |
|
|
MJAM::Command::Core::start('cmdcore'); |
55 |
|
|
|
56 |
|
|
$poe_kernel->post('cmdcore', 'docmd', 'tell cmdfd start'); |
57 |
|
|
#$poe_kernel->post('cmd', 'docmd', 'tell httpd start'); |
58 |
|
|
$poe_kernel->post('cmdcore', 'docmd', 'tell rpcxmld start'); |
59 |
|
|
#$poe_kernel->post('cmd', 'docmd', 'tell dbagent start'); |
60 |
|
|
|
61 |
|
|
# start a core-shell-console |
62 |
|
|
$poe_kernel->post( cmdcore => docmd => 'tell console start core-shell'); |
63 |
|
|
|
64 |
|
|
$poe_kernel->run(); |