]> source.dussan.org Git - tigervnc.git/commitdiff
vncserver: Clean pid files of dead processes. 207/head
authorMichal Srb <michalsrb@gmail.com>
Thu, 1 Oct 2015 23:28:26 +0000 (02:28 +0300)
committerMichal Srb <michalsrb@gmail.com>
Thu, 1 Oct 2015 23:28:26 +0000 (02:28 +0300)
When Xvnc fails to start, delete the pid file. Clean pid files of dead processes
when listing them as well.

unix/vncserver

index 9ff24411cfced64a60915983079fafad42e12174..64d10c5bd2e819e3419a46c21cba01a1916b7aeb 100755 (executable)
@@ -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;