Restart piktc_svc
svcstart.pl is a simple Perl script to restart piktc_svc. This is the script version customized for Red Hat Linux as sourced from the svcstart_programs.cfg file.
#!/usr/bin/perl
# svcstart.pl -- kill/restart the piktc_svc daemon
die "Usage: svcstart.pl [-kr]\n" if $#ARGV != 0;
use Getopt::Std;
die "Usage: svcstart.pl [-kr]\n" if !getopts('kr');
$KILL = $opt_k;
$RESTART = $opt_r;
$pscmd = "/bin/ps axcl |
/usr/bin/awk '/pikt/ {printf(\"%s %s %s\\n\", \$3, \$4, \$NF)}'";
if ($KILL || $RESTART) {
# kill any running piktc_svc
open(PSCMD, "$pscmd |");
while (<PSCMD>) {
chop;
if (/^(\d+)\s+\d+\s+piktc_sv/) {
$pid = $1;
if (kill('SIGTERM', $pid)) {
printf "killed piktc_svc pid %d\n", $pid;
}
}
}
close(PSCMD);
}
if ($RESTART) {
# delete any piktc_svc.lock file
if (-e "/pikt/etc/piktc_svc.lock") {
system("/binb/rm /pikt/etc/piktc_svc.lock 2>/dev/null");
}
# restart piktc_svc
$cmd = "/pikt/bin/piktc_svc";
$cmd .= " &";
system($cmd);
# find new piktc_svc
open(PSCMD, "$pscmd |");
while (<PSCMD>) {
chop;
if (/^(\d+)\s+\d+\s+piktc_sv/) {
$pid = $1;
printf "new piktc_svc pid %d\n", $pid;
}
}
close(PSCMD);
}
For more examples, see Samples.