vncserver: Clean pid files of dead processes.
When Xvnc fails to start, delete the pid file. Clean pid files of dead processes
when listing them as well.
diff --git a/unix/vncserver b/unix/vncserver
index 9ff2441..64d10c5 100755
--- a/unix/vncserver
+++ b/unix/vncserver
@@ -302,6 +302,7 @@
}
unless (kill 0, `cat $pidFile`) {
warn "Could not start Xvnc.\n\n";
+ unlink $pidFile;
open(LOG, "<$desktopLog");
while (<LOG>) { print; }
close(LOG);
@@ -587,7 +588,12 @@
print "X DISPLAY #\tPROCESS ID\n";
foreach my $file (@filelist) {
if ($file =~ /$host:(\d+)$\.pid/) {
- print ":".$1."\t\t".`cat $vncUserDir/$file`;
+ chop($tmp_pid = `cat $vncUserDir/$file`);
+ if (kill 0, $tmp_pid) {
+ print ":".$1."\t\t".`cat $vncUserDir/$file`;
+ } else {
+ unlink ($vncUserDir . "/" . $file);
+ }
}
}
exit 1;