summaryrefslogtreecommitdiffstats
path: root/unix/vncserver
diff options
context:
space:
mode:
authorMichal Srb <michalsrb@gmail.com>2015-10-02 02:28:26 +0300
committerMichal Srb <michalsrb@gmail.com>2015-10-02 02:28:26 +0300
commite6e11f9a3ae7233a32034d4e72674561859ad663 (patch)
tree2258511237b34cd85127abb1d486a71bdd18af3f /unix/vncserver
parent6a2b6bf396c5f9685d6f282b0abfb55b0f019d80 (diff)
downloadtigervnc-e6e11f9a3ae7233a32034d4e72674561859ad663.tar.gz
tigervnc-e6e11f9a3ae7233a32034d4e72674561859ad663.zip
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.
Diffstat (limited to 'unix/vncserver')
-rwxr-xr-xunix/vncserver8
1 files changed, 7 insertions, 1 deletions
diff --git a/unix/vncserver b/unix/vncserver
index 9ff24411..64d10c5b 100755
--- a/unix/vncserver
+++ b/unix/vncserver
@@ -302,6 +302,7 @@ if ($fontPath ne $defFontPath) {
}
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 @@ sub List
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;