Linux console tools development discussion
 help / color / mirror / Atom feed
From: Felix Janda <felix.janda@posteo.de>
To: Linux console tools development discussion <kbd@lists.altlinux.org>
Subject: [kbd] [PATCH] openvt -w: Return exit status from child
Date: Thu, 30 Jul 2015 19:33:55 +0200
Message-ID: <20150730173355.GA11486@nyan> (raw)
In-Reply-To: <1438225782.2870.2.camel@gmail.com>

---
ToBeReplaced wrote:
> On openvt from kbd 2.0.2, `openvt -c 1 -fw /bin/false` exits with
> return code 0 instead of 1.

Can confirm on current git.

> There's a bug report from 2003 and a claim that it was resolved as of
> kbd 1.14.1: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=190386

The relevant commit is e37c78afc7fcee6d8edaa506b99d9081249adb7d. Maybe
it got broken since. Possibly it never worked at all.

> I'm not sure if this is a bug or desired behavior. 
> 
> How can I get the return code of the command passed to openvt?

Try this patch.
---
 src/openvt.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/openvt.c b/src/openvt.c
index 1ba8912..1a36a69 100644
--- a/src/openvt.c
+++ b/src/openvt.c
@@ -386,7 +386,6 @@ main(int argc, char *argv[])
 	if (do_wait) {
 		int retval = 0; /* actual value returned form process */
 
-		wait(NULL);
 		waitpid(pid, &retval, 0);
 
 		if (show) {	/* Switch back... */
@@ -403,7 +402,7 @@ main(int argc, char *argv[])
 
 		/* if all our stuff went right, we want to return the exit code of the command we ran
 		   super vital for scripting loops etc */
-		return(retval);
+		return WEXITSTATUS(retval);
 	}
 
 	return EXIT_SUCCESS;
-- 
2.3.6



  reply	other threads:[~2015-07-30 17:33 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-30  3:09 [kbd] Return code of openvt command ToBeReplaced
2015-07-30 17:33 ` Felix Janda [this message]
2015-08-09  8:46   ` [kbd] [PATCHv2] openvt -w: Return exit status from child Felix Janda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150730173355.GA11486@nyan \
    --to=felix.janda@posteo.de \
    --cc=kbd@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux console tools development discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/kbd/0 kbd/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 kbd kbd/ http://lore.altlinux.org/kbd \
		kbd@lists.altlinux.org kbd@lists.altlinux.ru kbd@lists.altlinux.com
	public-inbox-index kbd

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.kbd


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git