[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Checking executability for asynchronous commands
From: |
Greg Wooledge |
Subject: |
Re: Checking executability for asynchronous commands |
Date: |
Mon, 28 Dec 2020 08:15:27 -0500 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Sun, Dec 27, 2020 at 08:02:49AM -0500, Eli Schwartz wrote:
> I'm not sure I understand the question?
My interpretation is that for an async *simple* command of the
form cmd args & where cmd cannot be executed at all (due to
lack of permissions, perhaps, or because the external program is
not installed), they want bash to set $? to a nonzero value to
indicate that the command couldn't even be started.
I've seen similar requests several times over the years.
The problem is that the parent bash (the script) doesn't know, and
cannot know, that the command was stillborn. Only the child bash
process can know this, and by the time this information has become
available, the parent bash process has already moved on.
The only way the parent can obtain this information is to wait until
that information becomes available. The obvious problem here is that
the parent does not know when that information will become available.
So, one is stuck choosing from among the following strategies:
1) After launching the async command, sleep for some fraction of a
second, and then check whether the child is still running. If
it isn't running, retrieve its exit status.
2) Set up a SIGCHLD handler (trap), and process the child's exit status
whenever the trap fires.
3) Poll "kill -0" on the child's PID during the script's main loop.
Each of these strategies has its advantages and flaws. None of them
is correct for every script.
- Checking executability for asynchronous commands, Markus Elfring, 2020/12/25
- Re: Checking executability for asynchronous commands, Andreas Kusalananda Kähäri, 2020/12/25
- Re: Checking executability for asynchronous commands, Chet Ramey, 2020/12/25
- Re: Checking executability for asynchronous commands, Markus Elfring, 2020/12/26
- Re: Checking executability for asynchronous commands, Chet Ramey, 2020/12/26
- Re: Checking executability for asynchronous commands, Markus Elfring, 2020/12/27
- Re: Checking executability for asynchronous commands, Eli Schwartz, 2020/12/27
- Re: Checking executability for asynchronous commands,
Greg Wooledge <=
- Re: Checking executability for asynchronous commands, Ilkka Virta, 2020/12/28
- Re: Checking executability for asynchronous commands, Eli Schwartz, 2020/12/28
- Re: Checking executability for asynchronous commands, Léa Gris, 2020/12/28
- Re: Checking executability for asynchronous commands, Eli Schwartz, 2020/12/28
- Re: Checking executability for asynchronous commands, Chet Ramey, 2020/12/29
- Re: Checking executability for asynchronous commands, Eli Schwartz, 2020/12/29
- Re: Checking executability for asynchronous commands, Chet Ramey, 2020/12/27
- Re: Checking executability for asynchronous commands, Markus Elfring, 2020/12/28
- Re: Checking executability for asynchronous commands, Chet Ramey, 2020/12/29
- Re: Checking executability for asynchronous commands, Robert Elz, 2020/12/29