[X2Go-Dev] Pull request: add --nofork option to x2gocleansessions

Andrew J. Hesford ajh+x2go at sideband.org
Thu Jun 24 16:13:06 CEST 2021


Greetings,

Following is a pull request against the 4.1.0.x branch that separates
the no-fork behavior of x2gocleansessions from the debug output
behavior. A new flag, `--nofork` (`-n-` for short) determined whether
the program forks; `--debug` only controls the logging verbosity and
also forces `$nofork=1` to preserve old behavior.

Please let me know if anything should be changed.

Thanks,
Andrew Hesford

The following changes since commit cabad60865be64de219b3b477ddaefa6aef1cf43:

  Continue development (2018-11-29 08:09:45 +0100)

are available in the Git repository at:

  https://github.com/ahesford/x2goserver.git nofork

for you to fetch changes up to 4587d918c138205c252316c007fab31b75b87061:

  Separate non-forking behavior from --debug into --nofork (2021-05-11 19:27:02 -0400)

----------------------------------------------------------------
Andrew J. Hesford (1):
      Separate non-forking behavior from --debug into --nofork

 x2goserver/sbin/x2gocleansessions | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/x2goserver/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions
index e78f677a..8e2ba433 100755
--- a/x2goserver/sbin/x2gocleansessions
+++ b/x2goserver/sbin/x2gocleansessions
@@ -40,15 +40,17 @@ use Pod::Usage;
 Getopt::Long::Configure("gnu_getopt", "no_auto_abbrev");
 
 my $debug = 0;
+my $nofork = 0;
 my $help = 0;
 my $man = 0;
-GetOptions('debug|d' => \$debug, 'help|?|h' => \$help, 'man' => \$man) or pod2usage(2);
+GetOptions('debug|d' => \$debug, 'nofork|n' => \$nofork, 'help|?|h' => \$help, 'man' => \$man) or pod2usage(2);
 pod2usage(1) if $help;
 pod2usage(-verbose => 2, -exitval => 0) if $man;
 
 openlog($0,'cons,pid','user');
 if ($debug)
 {
+	$nofork = 1;
 	setlogmask( LOG_UPTO (LOG_DEBUG) );
 }
 else
@@ -99,12 +101,12 @@ my $uname;
 my $serv = hostname;
 my $pid;
 
-if (! $debug)
+if (! $nofork)
 {
 	$pid = fork();
 }
 
-if ((!$debug) && (not defined $pid))
+if ((!$nofork) && (not defined $pid))
 {
 	print "resources not avilable.\n";
 }
@@ -128,7 +130,7 @@ elsif ($pid == 0 )
 	my $superenice_idle=$Config->param("superenicer.idle-nice-level");
 	my $superenice_ignoredusers=$Config->param("superenicer.ignored-users");
 
-	if ( ! $debug )
+	if ( ! $nofork )
 	{
 		# close any open file descriptor left open by our parent before the fork
 		my $fd;
@@ -377,7 +379,8 @@ x2gocleansessions [options]
   Options:
     --help|-h|-?            brief help message
     --man                   full documentation
-    --debug|-d              enable debugging and don't daemonize
+    --debug|-d              enable debugging; implies --nofork
+    --nofork|-n             don't daemonize
 
 =head1 OPTIONS
 
@@ -393,8 +396,11 @@ Prints the manual page and exits.
 
 =item B<--debug>|B<-d>
 
-Override debugging setting in global config and keep application in foreground
-instead of daemonizing.
+Override debugging setting in global config; implies B<--nofork>.
+
+=item B<--nofork>|B<-n>
+
+Keep application in foreground instead of daemonizing.
 
 =back


More information about the x2go-dev mailing list