summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xunix/vncserver18
-rw-r--r--unix/vncserver.man7
2 files changed, 21 insertions, 4 deletions
diff --git a/unix/vncserver b/unix/vncserver
index 7fe93bd1..689641f0 100755
--- a/unix/vncserver
+++ b/unix/vncserver
@@ -122,7 +122,7 @@ if ($fontPath eq "") {
# Check command line options
&ParseOptions("-geometry",1,"-depth",1,"-pixelformat",1,"-name",1,"-kill",1,
- "-help",0,"-h",0,"--help",0,"-fp",1,"-list",0,"-fg",0);
+ "-help",0,"-h",0,"--help",0,"-fp",1,"-list",0,"-fg",0,"-autokill",0);
&Usage() if ($opt{'-help'} || $opt{'-h'} || $opt{'--help'});
@@ -338,10 +338,19 @@ if (-e "/tmp/.X11-unix/X$displayNumber" ||
$ENV{VNCDESKTOP}= $desktopName;
if ($opt{'-fg'}) {
- close(STDIN);
- system("($vncUserDir/xstartup; $0 -kill :$displayNumber) >> " . &quotedString($desktopLog) . " 2>&1");
+ system("$vncUserDir/xstartup >> " . &quotedString($desktopLog) . " 2>&1");
+ if (kill 0, `cat $pidFile`) {
+ $opt{'-kill'} = ':'.$displayNumber;
+ &Kill();
+ }
} else {
- system("$vncUserDir/xstartup >> " . &quotedString($desktopLog) . " 2>&1 &");
+ if ($opt{'-autokill'}) {
+ system("($vncUserDir/xstartup; $0 -kill :$displayNumber) >> "
+ . &quotedString($desktopLog) . " 2>&1 &");
+ } else {
+ system("$vncUserDir/xstartup >> " . &quotedString($desktopLog)
+ . " 2>&1 &");
+ }
}
exit;
@@ -564,6 +573,7 @@ sub Usage
" [-pixelformat rgbNNN|bgrNNN]\n".
" [-fp <font-path>]\n".
" [-fg]\n".
+ " [-autokill]\n".
" <Xvnc-options>...\n\n".
" $prog -kill <X-display>\n\n".
" $prog -list\n\n");
diff --git a/unix/vncserver.man b/unix/vncserver.man
index c24225ae..7654380e 100644
--- a/unix/vncserver.man
+++ b/unix/vncserver.man
@@ -15,6 +15,7 @@ vncserver \- start or stop a VNC server
.RB [ \-fp
.IR font-path ]
.RB [ \-fg ]
+.RB [ \-autokill ]
.RI [ Xvnc-options... ]
.br
.BI "vncserver \-kill :" display#
@@ -113,6 +114,12 @@ can be aborted with CTRL-C, and (2) the VNC server will exit as soon as the
user logs out of the window manager in the VNC session. This may be necessary
when launching TigerVNC from within certain grid computing environments.
+.TP
+.B \-autokill
+Automatically kill Xvnc whenever the xstartup script exits. In most cases,
+this has the effect of terminating Xvnc when the user logs out of the window
+manager.
+
.SH FILES
Several VNC-related files are found in the directory $HOME/.vnc:
.TP