]> source.dussan.org Git - tigervnc.git/commitdiff
Don't pretend that vncserver -fg & works, because closing stdin causes problems with... v1.0.90
authorDRC <dcommander@users.sourceforge.net>
Wed, 16 Mar 2011 19:32:02 +0000 (19:32 +0000)
committerDRC <dcommander@users.sourceforge.net>
Wed, 16 Mar 2011 19:32:02 +0000 (19:32 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/branches/1_1@4361 3789f03b-4d11-0410-bbf8-ca57d06f2519

unix/vncserver
unix/vncserver.man

index 7fe93bd18a4ce8bf9d61410533506840fd0dfa6b..689641f01e34ba342d9db949d30d9997a9cf2a77 100755 (executable)
@@ -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");
index c24225ae0972a322fd297354639af8b1b8dafb10..7654380ed4191b3da68787eef89ae17aa1e84455 100644 (file)
@@ -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