summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Tkac <atkac@redhat.com>2011-04-27 11:28:09 +0000
committerAdam Tkac <atkac@redhat.com>2011-04-27 11:28:09 +0000
commit38ba8cf04294ff81da1452ff2153ad581ae78c61 (patch)
tree4116ebade2050f5fd921a6d1d511ee0d8bc1e24c
parentf586b840bf71f08b900cd3475382a2a5c6d47156 (diff)
downloadtigervnc-38ba8cf04294ff81da1452ff2153ad581ae78c61.tar.gz
tigervnc-38ba8cf04294ff81da1452ff2153ad581ae78c61.zip
Merged r4361 from 1_1 branch.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4384 3789f03b-4d11-0410-bbf8-ca57d06f2519
-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