diff options
| author | Simon Ser <contact@emersion.fr> | 2021-09-13 09:54:18 +0000 | 
|---|---|---|
| committer | Kenny Levinsen <kl@kl.wtf> | 2021-09-13 13:39:20 +0200 | 
| commit | fe600eac2be9bd09d6c9746cf273a7eaed4e6f7f (patch) | |
| tree | 22613a98196a0b8c42f294360e23c393d57ec749 | |
| parent | 8c85c46d2db93fcbb7ff1e0bbeaeb3e4dd0e71a1 (diff) | |
| download | seatd-fe600eac2be9bd09d6c9746cf273a7eaed4e6f7f.tar.xz | |
seatd-launch: exit with status >128 if child is signalled
Mimick shells and exit with a status >128 if our child has been
signalled. Exiting with 128 + signal number is what most shells do
(POSIX only requires them to exit with >128).
| -rw-r--r-- | man/seatd-launch.1.scd | 8 | ||||
| -rw-r--r-- | seatd-launch/seatd-launch.c | 4 | 
2 files changed, 11 insertions, 1 deletions
diff --git a/man/seatd-launch.1.scd b/man/seatd-launch.1.scd index d882ba5..9234203 100644 --- a/man/seatd-launch.1.scd +++ b/man/seatd-launch.1.scd @@ -38,6 +38,14 @@ superior to it for two reasons:  . The specified command never runs as root  . The standard seatd executable and libseat backend is used +# EXIT STATUS + +seatd-launch exits with the status of its child. When the child terminates on +a signal _N_, seatd-launch exits with the status 128 + _N_. + +If seatd-launch fails because of another error, it exits with a non-zero +status. +  # SEE ALSO  The libseat library, *<libseat.h>*, *seatd*(1) diff --git a/seatd-launch/seatd-launch.c b/seatd-launch/seatd-launch.c index 1877c98..ba61f5d 100644 --- a/seatd-launch/seatd-launch.c +++ b/seatd-launch/seatd-launch.c @@ -166,8 +166,10 @@ int main(int argc, char *argv[]) {  	if (WIFEXITED(status)) {  		return WEXITSTATUS(status); +	} else if (WIFSIGNALED(status)) { +		return 128 + WTERMSIG(status);  	} else { -		return 1; +		abort(); // unreachable  	}  error_seatd:  | 
