I had one instance of ftpupd.exe churning away overnight, so I cobbled a perl script to handle the auto-kill (and have set it on a 15minute task scheduler run).
#!/usr/bin/perl
#
# use the pstools to find the current cpu for ftpupd.exe (WD), and optionally
# use pskill to zap it to release the held memory
#
# K. True - 28-May-2015
#
# Run via Windows Scheduler or Linux cron .. all output is to the log file(s)
#
# ---- configurable settings ----
$maxCPU = 95; # amount in KB that we'll tolerate
$lookFor = 'ftpupd';
$logsDir = "./ftpupd-logs/"; # place to store the YYYYMMDD.txt
# ---- end of configurable settings --
#
$|=1; # no buffering of output
$cur_time = time();
@months = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$log_filename = ISO_datestamp($cur_time) . ".txt";
$nice_date = nice_datestamp($cur_time);
open (OUT,">>${logsDir}${log_filename}");
open(PS,"wmic path Win32_PerfFormattedData_PerfProc_Process WHERE Name=\"$lookFor\" GET Name,IDProcess,PercentProcessorTime,PercentPrivilegedTime,PercentUserTime
|") || die "..unable to run wmic $!\n";
$foundIt = 0;
while (<PS>)
{
#print $_;
$rec = $_;
#IDProcess Name PercentPrivilegedTime PercentProcessorTime PercentUserTime
#
#13200 ftpupd 0 98 98
($PID,$name,$privCPU,$CPU,$userCPU) = split(/\s+/);
next unless $userCPU =~ m/\d+/;
next unless $name = $lookFor;
#print STDOUT "$name\t$PID\t$CPU\n";
print OUT "$nice_date\t$rec";
print STDOUT "$nice_date\t$rec";
$foundIt++;
if($CPU >= $maxCPU) {
print OUT "$nice_date\t$name PID=$PID pskill for $CPU > $maxCPU percent\n";
print STDOUT "$nice_date\t$name PID=$PID pskill for $CPU > $maxCPU percent KB\n";
open(PK,"pskill $PID |") || die "..unable to run pskill $!\n";
while (<PK>) {
print OUT "$nice_date\t$_";
print STDOUT "$nice_date\t$_";
}
print OUT "$nice_date\t-------------------------------------------\n";
print STDOUT "$nice_date\t-------------------------------------------\n";
}
}
if (!$foundIt) {
print OUT "$nice_date\t$lookFor task not running\n";
print STDOUT "$nice_date\t$lookFor task not running\n";
}
# ------ end of main program -----
sub nice_datestamp {
my $d = shift;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($d);
my $nicedate = sprintf(
"%02d\-%s\-%04d %02d\:%02d\:%02d",
$mday,$months[$mon],$year+1900,$hour,$min,$sec);
return("$nicedate");
}
sub ISO_datestamp {
my $d = shift;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($d);
my $nicedate = sprintf("%04d%02d%02d",$year+1900,$mon+1,$mday);
return("$nicedate");
}
which produced the log of
28-May-2015 08:04:30 13200 ftpupd 0 100 100
28-May-2015 08:04:30 ftpupd PID=13200 pskill for 100 > 95 percent
28-May-2015 08:04:30 -------------------------------------------
So… I’m ‘protected’ from having it take over the CPUs. Other than that, the system is quite stable and running well.
I’ll send the settings files via email – thanks for offering Brian 
Best regards,
Ken