]> source.dussan.org Git - tigervnc.git/commitdiff
Always exit Xvnc whenever the user exits the window manager, and provide a -fg switch...
authorDRC <dcommander@users.sourceforge.net>
Fri, 4 Mar 2011 10:17:48 +0000 (10:17 +0000)
committerDRC <dcommander@users.sourceforge.net>
Fri, 4 Mar 2011 10:17:48 +0000 (10:17 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/branches/1_1@4320 3789f03b-4d11-0410-bbf8-ca57d06f2519

unix/vncserver
unix/vncserver.man

index 41e5603512f879dcf0eae3112033c2f5b47efd15..0fbed190c745669c813f9deabed1630e9c8f5980 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);
+             "-help",0,"-h",0,"--help",0,"-fp",1,"-list",0,"-fg",0);
 
 &Usage() if ($opt{'-help'} || $opt{'-h'} || $opt{'--help'});
 
@@ -306,7 +306,15 @@ if (-e "/tmp/.X11-unix/X$displayNumber" ||
 }
 $ENV{VNCDESKTOP}= $desktopName;
 
-system("$vncUserDir/xstartup >> " . &quotedString($desktopLog) . " 2>&1 &");
+if ($opt{'-fg'}) {
+    system("$vncUserDir/xstartup >> " . &quotedString($desktopLog) . " 2>&1");
+    if (kill 0, `cat $pidFile`) {
+        $opt{'-kill'} = ':'.$displayNumber;
+        &Kill();
+    }
+} else {
+    system("($vncUserDir/xstartup; $0 -kill :$displayNumber) >> " . &quotedString($desktopLog) . " 2>&1 &");
+}
 
 exit;
 
@@ -527,6 +535,7 @@ sub Usage
        "                 [-geometry <width>x<height>]\n".
        "                 [-pixelformat rgbNNN|bgrNNN]\n".
        "                 [-fp <font-path>]\n".
+       "                 [-fg]\n".
        "                 <Xvnc-options>...\n\n".
        "       $prog -kill <X-display>\n\n".
        "       $prog -list\n\n");
index 1c93107ba6341bf3f606cd41181dd6d76c4a973d..5127056eff0f165c46508f49002085df7473b547 100644 (file)
@@ -14,6 +14,7 @@ vncserver \- start or stop a VNC server
 .IR format ]
 .RB [ \-fp
 .IR font-path ]
+.RB [ \-fg ]
 .RI [ Xvnc-options... ]
 .br
 .BI "vncserver \-kill :" display#
@@ -105,6 +106,14 @@ The
 argument allows you to override the above fallback logic and specify a font
 path for Xvnc to use.
 
+.TP
+.B \-fg
+This version of vncserver will always launch Xvnc in such a way that, when the
+user exits the window manager in their VNC session, Xvnc will terminate.
+Specifying this option will additionally make Xvnc run as a foreground process,
+which means that it can be aborted with CTRL-C.  This may be necessary when
+launching TigerVNC from within certain grid computing environments.
+
 .SH FILES
 Several VNC-related files are found in the directory $HOME/.vnc:
 .TP