diff options
author | Michal Srb <michalsrb@gmail.com> | 2015-10-02 02:28:26 +0300 |
---|---|---|
committer | Michal Srb <michalsrb@gmail.com> | 2015-10-02 02:28:26 +0300 |
commit | e6e11f9a3ae7233a32034d4e72674561859ad663 (patch) | |
tree | 2258511237b34cd85127abb1d486a71bdd18af3f | |
parent | 6a2b6bf396c5f9685d6f282b0abfb55b0f019d80 (diff) | |
download | tigervnc-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.
-rwxr-xr-x | unix/vncserver | 8 |
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; |