Sponsored Content
Top Forums Shell Programming and Scripting Monitoring processes in parallel and process log file after process exits Post 303003341 by shunya on Tuesday 12th of September 2017 04:00:38 PM
Old 09-12-2017
That is wonderful, Corona!! It works for me. Thanks for your help.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

killing parallel oracle process

Hi guys: I have a an oracle job which uses 10 parallel hints and would like to killit when it hangs. I want to kill all the processes that have been spawned. what I do right now is get the pid of the scheduler process which initiated theis job and the do a ps -ef| grep 'pid' and trace through... (1 Reply)
Discussion started by: oracle8
1 Replies

2. Shell Programming and Scripting

split process files in parallel and rejoin

Hi I need to split a huge file into multiple smaller files using split command. After that i need to process each file in the back ground with sql loader .Sql loader is a utlity to load CSV files into oracle . Check the status of each of these sqlloaders and then after sucessfull... (6 Replies)
Discussion started by: xiamin
6 Replies

3. Shell Programming and Scripting

process monitoring

hi all, i would like to write the shell script to monitoring the processing, but if i passing the parameter the number of process is incorrect how to slove it? many thx got the correct number of process as following script: ===========================================================... (3 Replies)
Discussion started by: eric_wong_ch
3 Replies

4. UNIX and Linux Applications

How can i see if a unix Process Aplication i.e oracle is running in parallel

There is a unix process process in oracle running and i see running by typing ps -fea|grep GE_CLIENTES. The question is How can i see if this process is running in paralel. I dont know with a Unix command or specifically its a comand from Oracle. I kow a Parallel process ia a process that... (1 Reply)
Discussion started by: alexcol
1 Replies

5. Shell Programming and Scripting

Automate Log Monitoring Process

I am a new member of this forum and am also new to unix shell scripting. I joined the forum to seek for help to achieve my task as this forum helps people. here's what i do manually on daily basis 1)Loginto different unix box 2)Ftp the log files (morethan 50 each dir) to windows 3)use text pad... (3 Replies)
Discussion started by: sharugan
3 Replies

6. Shell Programming and Scripting

Finding the age of a unix process, killing old processes, killing zombie processes

I had issues with processes locking up. This script checks for processes and kills them if they are older than a certain time. Its uses some functions you'll need to define or remove, like slog() which I use for logging, and is_running() which checks if this script is already running so you can... (0 Replies)
Discussion started by: sukerman
0 Replies

7. Shell Programming and Scripting

Parallel process in Perl

HI All, I have scenerio where I need to call sub modules through for loop for (i=0; i<8000 ;i++) { .. BLOCKA } BLOCKA { .. .. subroutine 1; subroutine 2; } I want this to be run in parallel process1 BLOCKA { (6 Replies)
Discussion started by: gvk25
6 Replies

8. Programming

Parallel process in java

Hello; Please Are both threads execute in parallel? Thank you (4 Replies)
Discussion started by: chercheur857
4 Replies

9. UNIX for Dummies Questions & Answers

Running parallel process

i am having 4 process,have to run parallel and not after one by one. sample1.sh sample2.sh sample3.sh sample4.sh Thanks in advance. i (11 Replies)
Discussion started by: sagar_1986
11 Replies

10. Shell Programming and Scripting

Make process parallel

Hi, I have a file which has a list of 200 tables e.g: table.txt I need to do a count for each table and store it in a file. So I did something like this: for TABLE in `cat table.txt` do T_CNT=$(sqlplus -s -l / as sysdba <<EOF set echo off heading off feadback off SELECT count(*) FROM... (1 Reply)
Discussion started by: wahi80
1 Replies
POE::Component::IRC::Plugin(3pm)			User Contributed Perl Documentation			  POE::Component::IRC::Plugin(3pm)

NAME
POE::Component::IRC::Plugin - Provides plugin constants and documentation for POE::Component::IRC SYNOPSIS
# A simple ROT13 'encryption' plugin package Rot13; use strict; use warnings; use POE::Component::IRC::Plugin qw( :ALL ); # Plugin object constructor sub new { my $package = shift; return bless {}, $package; } sub PCI_register { my ($self, $irc) = splice @_, 0, 2; $irc->plugin_register( $self, 'SERVER', qw(public) ); return 1; } # This is method is mandatory but we don't actually have anything to do. sub PCI_unregister { return 1; } sub S_public { my ($self, $irc) = splice @_, 0, 2; # Parameters are passed as scalar-refs including arrayrefs. my $nick = ( split /!/, ${ $_[0] } )[0]; my $channel = ${ $_[1] }->[0]; my $msg = ${ $_[2] }; if (my ($rot13) = $msg =~ /^rot13 (.+)/) { $rot13 =~ tr[a-zA-Z][n-za-mN-ZA-M]; # Send a response back to the server. $irc->yield( privmsg => $channel => $rot13 ); # We don't want other plugins to process this return PCI_EAT_PLUGIN; } # Default action is to allow other plugins to process it. return PCI_EAT_NONE; } DESCRIPTION
POE::Component::IRC's plugin system has been released separately as Object::Pluggable. Gleaning at its documentation is advised. The rest of this document mostly describes aspects that are specific to POE::Component::IRC's use of Object::Pluggable. HISTORY
Certain individuals in #PoE on MAGNet said we didn't need to bloat the PoCo-IRC code... BinGOs, the current maintainer of the module, and I heartily agreed that this is a wise choice. One example: Look at the magnificent new feature in 3.4 -> irc_whois replies! Yes, that is a feature I bet most of us have been coveting for a while, as it definitely makes our life easier. It was implemented in 30 minutes or so after a request, the maintainer said. I replied by saying that it's a wonderful idea, but what would happen if somebody else asked for a new feature? Maybe thatfeature is something we all would love to have, so should it be put in the core? Plugins allow the core to stay lean and mean, while delegating additional functionality to outside modules. BinGOs' work with making PoCo-IRC inheritable is wonderful, but what if there were 2 modules which have features that you would love to have in your bot? Inherit from both? Imagine the mess... Here comes plugins to the rescue :) You could say Bot::Pluggable does the job, and so on, but if this feature were put into the core, it would allow PoCo-IRC to be extended beyond our wildest dreams, and allow the code to be shared amongst us all, giving us superior bug smashing abilities. Yes, there are changes that most of us will moan when we go update our bots to use the new $irc object system, but what if we also used this opportunity to improve PoCo-IRC even more and give it a lifespan until Perl8 or whatever comes along? :) DESCRIPTION
The plugin system works by letting coders hook into the two aspects of PoCo-IRC: o Data received from the server o User commands about to be sent to the server The goal of this system is to make PoCo-IRC so easy to extend, enabling it to Take Over The World! *Just Kidding* The general architecture of using the plugins should be: # Import the stuff... use POE; use POE::Component::IRC; use POE::Component::IRC::Plugin::ExamplePlugin; # Create our session here POE::Session->create( ... ); # Create the IRC session here my $irc = POE::Component::IRC->spawn() or die "Oh noooo! $!"; # Create the plugin # Of course it could be something like $plugin = MyPlugin->new(); my $plugin = POE::Component::IRC::Plugin::ExamplePlugin->new( ... ); # Hook it up! $irc->plugin_add( 'ExamplePlugin', $plugin ); # OOPS, we lost the plugin object! my $pluginobj = $irc->plugin_get( 'ExamplePlugin' ); # We want a list of plugins and objects my $hashref = $irc->plugin_list(); # Oh! We want a list of plugin aliases. my @aliases = keys %{ $irc->plugin_list() }; # Ah, we want to remove the plugin $plugin = $irc->plugin_del( 'ExamplePlugin' ); The plugins themselves will conform to the standard API described here. What they can do is limited only by imagination and the IRC RFC's ;) # Import the constants use POE::Component::IRC::Plugin qw( :ALL ); # Our constructor sub new { ... } # Required entry point for PoCo-IRC sub PCI_register { my ($self, $irc) = @_; # Register events we are interested in $irc->plugin_register( $self, 'SERVER', qw( 355 kick whatever) ); # Return success return 1; } # Required exit point for PoCo-IRC sub PCI_unregister { my ($self, $irc) = @_; # PCI will automatically unregister events for the plugin # Do some cleanup... # Return success return 1; } # Registered events will be sent to methods starting with IRC_ # If the plugin registered for SERVER - irc_355 sub S_355 { my($self, $irc, $line) = @_; # Remember, we receive pointers to scalars, so we can modify them $$line = 'frobnicate!'; # Return an exit code return PCI_EAT_NONE; } # Default handler for events that do not have a corresponding plugin # method defined. sub _default { my ($self, $irc, $event) = splice @_, 0, 3; print "Default called for $event "; # Return an exit code return PCI_EAT_NONE; } Plugins can even embed their own POE sessions if they need to do fancy stuff. Below is a template for a plugin which does just that. package POE::Plugin::Template; use POE; use POE::Component::IRC::Plugin qw( :ALL ); sub new { my $package = shift; my $self = bless {@_}, $package; return $self; } sub PCI_register { my ($self, $irc) = splice @_, 0, 2; # We store a ref to the $irc object so we can use it in our # session handlers. $self->{irc} = $irc; $irc->plugin_register( $self, 'SERVER', qw(blah blah blah) ); POE::Session->create( object_states => [ $self => [qw(_start _shutdown)], ], ); return 1; } sub PCI_unregister { my ($self, $irc) = splice @_, 0, 2; # Plugin is dying make sure our POE session does as well. $poe_kernel->call( $self->{SESSION_ID} => '_shutdown' ); delete $self->{irc}; return 1; } sub _start { my ($kernel, $self) = @_[KERNEL, OBJECT]; $self->{SESSION_ID} = $_[SESSION]->ID(); # Make sure our POE session stays around. Could use aliases but that is so messy :) $kernel->refcount_increment( $self->{SESSION_ID}, __PACKAGE__ ); return; } sub _shutdown { my ($kernel, $self) = @_[KERNEL, OBJECT]; $kernel->alarm_remove_all(); $kernel->refcount_decrement( $self->{SESSION_ID}, __PACKAGE__ ); return; } EVENT TYPES
SERVER hooks Hooks that are targeted toward data received from the server will get the exact same arguments as if it was a normal event, look at the PoCo-IRC docs for more information. NOTE: Server methods are identified in the plugin namespace by the subroutine prefix of S_*. I.e. an irc_kick event handler would be: sub S_kick {} The only difference is instead of getting scalars, the hook will get a reference to the scalar, to allow it to mangle the data. This allows the plugin to modify data *before* they are sent out to registered sessions. They are required to return one of the exit codes so PoCo-IRC will know what to do. Names of potential hooks 001 socketerr connected plugin_del ... Keep in mind that they are always lowercased. Check out the OUTPUT EVENTS section of POE::Component::IRC's documentation for the complete list of events. USER hooks These type of hooks have two different argument formats. They are split between data sent to the server, and data sent through DCC connections. NOTE: User methods are identified in the plugin namespace by the subroutine prefix of U_*. I.e. an irc_kick event handler would be: sub U_kick {} Hooks that are targeted to user data have it a little harder. They will receive a reference to the raw line about to be sent out. That means they will have to parse it in order to extract data out of it. The reasoning behind this is that it is not possible to insert hooks in every method in the $irc object, as it will become unwieldy and not allow inheritance to work. The DCC hooks have it easier, as they do not interact with the server, and will receive references to the arguments specified in the DCC plugin documentation regarding dcc commands. Names of potential hooks kick dcc_chat ison privmsg ... Keep in mind that they are always lowercased, and are extracted from the raw line about to be sent to the irc server. To be able to parse the raw line, some RFC reading is in order. These are the DCC events that are not given a raw line, they are: dcc - $nick, $type, $file, $blocksize, $timeout dcc_accept - $cookie, $myfile dcc_resume - $cookie dcc_chat - $cookie, @lines dcc_close - $cookie _default If a plugin has registered for an event but doesn't have a hook method defined for ir, component will attempt to call a plugin's "_default" method. The first parameter after the plugin and irc objects will be the handler name. sub _default { my ($self, $irc, $event) = splice @_, 0, 3; # $event will be something like S_public or U_dcc, etc. return PCI_EAT_NONE; } The "_default" handler is expected to return one of the exit codes so PoCo-IRC will know what to do. EXIT CODES
PCI_EAT_NONE This means the event will continue to be processed by remaining plugins and finally, sent to interested sessions that registered for it. PCI_EAT_CLIENT This means the event will continue to be processed by remaining plugins but it will not be sent to any sessions that registered for it. This means nothing will be sent out on the wire if it was an USER event, beware! PCI_EAT_PLUGIN This means the event will not be processed by remaining plugins, it will go straight to interested sessions. PCI_EAT_ALL This means the event will be completely discarded, no plugin or session will see it. This means nothing will be sent out on the wire if it was an USER event, beware! EXPORTS
Exports the return constants for plugins to use in @EXPORT_OK Also, the ':ALL' tag can be used to get all of them. SEE ALSO
POE::Component::IRC Object::Pluggable Object::Pluggable::Pipeline POE::Session AUTHOR
Apocalypse <apocal@cpan.org> perl v5.14.2 2011-12-07 POE::Component::IRC::Plugin(3pm)
All times are GMT -4. The time now is 04:04 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy