From: Tanaka Akira <akr@m17n.org>
To: zsh-workers@sunsite.auc.dk
Subject: Re: fg/bg on FreeBSD.
Date: 07 May 2000 02:48:42 +0900 [thread overview]
Message-ID: <hvozoq3mux1.fsf@serein.m17n.org> (raw)
In-Reply-To: <1000506170828.ZM2063@candle.brasslantern.com> (Bart Schaefer's message of "Sat, 6 May 2000 17:08:28 +0000")
In article <1000506170828.ZM2063@candle.brasslantern.com>,
"Bart Schaefer" <schaefer@candle.brasslantern.com> writes:
> Why is the PGID of sleep different on FreeBSD? Did it change after the
> sleep was started because the echo exited?
Possibly. But NetBSD has no problem...
| Z:akr@dhcp21% ktrace -i zsh -f
| dhcp21% echo|sleep 10
| ^Z
| zsh: done echo |
| zsh: suspended sleep 10
| dhcp21% jobs -l
| [1] + 29257 done echo |
| 29258 suspended sleep 10
| dhcp21% ps j29258
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 29258 29256 29258 94d480 1 T p3 0:00.00 sleep 10
| dhcp21% bg
| [1] + done echo |
| continued sleep 10
| dhcp21% ps j29258
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 29258 29256 29258 94d480 1 T p3 0:00.00 sleep 10
| dhcp21% kill -9 29258
| [1] + done echo |
| killed sleep 10
| dhcp21% exit
| Z:akr@dhcp21% kdump|egrep 'kill|fork|exit|setpgid'
| 29256 zsh CALL fork # zsh: fork for echo
| 29256 zsh RET fork 29257/0x7249
| 29257 zsh RET fork 0
| 29257 zsh CALL setpgid(0,0x7249) # echo: setpgid(0,29257)
| 29257 zsh RET setpgid 0
| 29256 zsh CALL fork # zsh: fork for sleep
| 29256 zsh RET fork 29258/0x724a
| 29257 zsh CALL exit(0) # echo: exit(0)
| 29258 zsh RET fork 0
| 29258 zsh CALL kill(0xffff8db7,0)
| 29258 zsh RET kill -1 errno 3 No such process
| 29258 zsh CALL setpgid(0,0x724a) # sleep: setpgid(0,29258)
Hm. The process to be sleep command set its PGID itself.
| 29258 zsh RET setpgid 0
| 29256 zsh CALL kill(0xffff8db6,0)
| 29256 zsh RET kill 0
| 29256 zsh CALL fork # zsh: fork for ps
| 29256 zsh RET fork 29259/0x724b
| 29259 zsh RET fork 0
| 29259 zsh CALL setpgid(0,0x724b)
| 29259 zsh RET setpgid 0
| 29259 ps CALL exit(0)
| 29256 zsh CALL kill(0xfffe7960,0)
| 29256 zsh RET kill -1 errno 3 No such process
| 29256 zsh CALL kill(0xffff8db7,0x13) # zsh: kill(-29257,SIGCONT)
| 29256 zsh RET kill -1 errno 3 No such process
| 29256 zsh CALL fork # zsh: fork for ps
| 29256 zsh RET fork 29260/0x724c
| 29260 zsh RET fork 0
| 29260 zsh CALL setpgid(0,0x724c)
| 29260 zsh RET setpgid 0
| 29260 ps CALL exit(0)
| 29256 zsh CALL kill(0xfffe7960,0)
| 29256 zsh RET kill -1 errno 3 No such process
| 29256 zsh CALL kill(0x724a,0x9)
| 29256 zsh RET kill 0
| killed sleep 10
| 29256 zsh CALL exit(0)
| Z:akr@dhcp21%
> Please try the same test, but replace "echo" with "sleep 9" so that you
> can stop both jobs before either one of them exits. Then see what the
> PGID of the second sleep is.
OK.
| Z:akr@dhcp21% ktrace -i zsh -f
| dhcp21% sleep 100|sleep 200
| ^Z
| zsh: suspended sleep 100 | sleep 200
9 seconds are too short to check it...
| dhcp21% jobs -l
| [1] + 29245 suspended sleep 100 |
| 29246 suspended sleep 200
| dhcp21% ps j29245; ps j29246
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 29245 29244 29245 94d480 2 T p3 0:00.00 sleep 100
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 29246 29244 29245 94d480 2 T p3 0:00.00 sleep 200
PGID is first sleep's PID. It's good.
| dhcp21% bg
| [1] + continued sleep 100 | sleep 200
| dhcp21% ps j29245; ps j29246
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 29245 29244 29245 94d480 2 I p3 0:00.00 sleep 100
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 29246 29244 29245 94d480 2 I p3 0:00.00 sleep 200
It's successfully resumed.
| dhcp21% kill %1
| [1] + terminated sleep 100 | sleep 200
| dhcp21% exit
| Z:akr@dhcp21%
Note that this is the result of similar test on NetBSD.
| Z:akr@netbsd% ktrace -i zsh -f
| netbsd% echo|sleep 100
| ^Z
| zsh: done echo |
| zsh: suspended sleep 100
| netbsd% jobs -l
| [1] + 16520 done echo |
| 16521 suspended sleep 100
| netbsd% ps j16521
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 16521 16519 16520 c09fae40 1 T p1 0:00.01 sleep 100
| netbsd% bg
| [1] + done echo |
| continued sleep 100
| netbsd% ps j16521
| USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
| akr 16521 16519 16520 c09fae40 1 S p1 0:00.01 sleep 100
| netbsd% kill %1
| [1] + done echo |
| terminated sleep 100
| netbsd% exit
| Z:akr@netbsd% kdump|egrep 'kill|fork|exit|setpgid'
| 16519 zsh CALL fork # zsh: fork for echo
| 16519 zsh RET fork 16520/0x4088
| 16520 zsh RET fork 0
| 16520 zsh CALL setpgid(0,0x4088)
| 16520 zsh RET setpgid 0
| 16520 zsh CALL exit(0) # echo: exit(0)
| 16519 zsh CALL fork # zsh: fork for sleep
| 16519 zsh RET fork 16521/0x4089
| 16521 zsh RET fork 0
| 16521 zsh CALL kill(0xffffbf78,0)
| 16521 zsh RET kill 0
| 16521 zsh CALL setpgid(0,0x4088) # sleep: setpgid(0,16520)
It setpgid itself to 16520(echo's PID) correctly.
| 16521 zsh RET setpgid 0
| 16519 zsh CALL fork
| 16519 zsh RET fork 16522/0x408a
| 16522 zsh RET fork 0
| 16522 zsh CALL setpgid(0,0x408a)
| 16522 zsh RET setpgid 0
| 16519 zsh CALL kill(0xffff8acf,0)
| 16519 zsh RET kill -1 errno 3 No such process
| 16519 zsh CALL kill(0xffffbf78,0x13)
| 16519 zsh RET kill 0
| 16519 zsh CALL fork
| 16519 zsh RET fork 16523/0x408b
| 16523 zsh RET fork 0
| 16523 zsh CALL setpgid(0,0x408b)
| 16523 zsh RET setpgid 0
| 16519 zsh CALL kill(0xffff8acf,0)
| 16519 zsh RET kill -1 errno 3 No such process
| 16519 zsh CALL kill(0xffffbf78,0xf)
| 16519 zsh RET kill 0
| 16519 zsh CALL exit(0)
| Z:akr@netbsd%
--
Tanaka Akira
next prev parent reply other threads:[~2000-05-06 17:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-05-06 15:03 Tanaka Akira
2000-05-06 17:08 ` Bart Schaefer
2000-05-06 17:48 ` Tanaka Akira [this message]
2000-05-06 18:45 ` Bart Schaefer
2000-05-06 19:03 ` Tanaka Akira
2000-05-06 19:58 ` Tanaka Akira
2000-05-06 21:23 ` Bart Schaefer
2000-05-06 21:41 ` Tanaka Akira
2000-05-08 8:48 Sven Wischnowsky
2000-05-08 9:17 ` Tanaka Akira
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=hvozoq3mux1.fsf@serein.m17n.org \
--to=akr@m17n.org \
--cc=zsh-workers@sunsite.auc.dk \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).