123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- strace of "sleep 1 | sleep 2" being run from interactive bash 3.0
- Synopsis:
- open /dev/tty [, if fails, open ttyname(0)]; close /* helps re-establish ctty */
- get current signal mask
- TCGETS on fd# 0
- TCGETS on fd# 2 /* NB: if returns ENOTTY (2>/dev/null), sh seems to disable job control,
- does not show prompt, but still executes cmds from fd# 0 */
- install default handlers for CHLD QUIT TERM
- install common handler for HUP INT ILL TRAP ABRT FPE BUS SEGV SYS PIPE ALRM TERM XCPU XFSZ VTALRM USR1 USR2
- ignore QUIT
- install handler for INT
- ignore TERM
- install handler for INT
- ignore TSTP TTOU TTIN
- install handler for WINCH
- get pid, ppid
- block all signals
- unblock all signals
- get our pprocess group
- minidoc:
- Each process group is a member of a session and each process is a member
- of the session of which its process group is a member.
- Process groups are used for distribution of signals, and by terminals
- to arbitrate requests for their input: processes that have the same
- process group as the terminal are foreground and may read, while others
- will block with a signal if they attempt to read. These calls are thus used
- by programs (shells) to create process groups in implementing job control.
- The TIOCGPGRP and TIOCSPGRP calls described in termios(3) are used to get/set
- the process group of the control terminal.
- If a session has a controlling terminal, CLOCAL is not set and a hangup occurs,
- then the session leader is sent a SIGHUP. If the session leader exits,
- the SIGHUP signal will be sent to each process in the foreground process
- group of the controlling terminal.
- If the exit of the process causes a process group to become orphaned,
- and if any member of the newly-orphaned process group is stopped, then a SIGHUP
- signal followed by a SIGCONT signal will be sent to each process
- in the newly-orphaned process group.
- ...
- dup stderr to fd# 255
- move ourself to our own process group
- block CHLD TSTP TTIN TTOU
- set tty's (255, stderr's) foreground process group to our group
- allow all signals
- mark 255 CLOEXEC
- set CHLD handler
- get signal mask
- get fd#0 flags
- get signal mask
- set INT handler
- block CHLD TSTP TTIN TTOU
- set fd #255 foreground process group to our group
- allow all signals
- set INT handler
- block all signals
- allow all signals
- block INT
- allow all signals
- lotsa sigactions: set INT,ALRM,WINCH handlers, ignore TERM,QUIT,TSTP,TTOU,TTIN
- block all signals
- allow all signals
- block all signals
- allow all signals
- block all signals
- allow all signals
- read "sleep 1 | sleep 2\n"
- block INT
- TCSETSW on fd# 0
- allow all signals
- lotsa sigactions: set INT,ALRM,WINCH handlers, ignore TERM,QUIT,TSTP,TTOU,TTIN
- block CHLD
- pipe([4, 5]) /* oops seems I lost another pipe() in editing... */
- fork child #1
- put child in it's own process group
- block only CHLD
- close(5)
- block only INT CHLD
- fork child #2
- put child in the same process group as first one
- block only CHLD
- close(4)
- block only CHLD
- block only CHLD TSTP TTIN TTOU
- set fd# 255 foreground process group to first child's one
- block only CHLD
- block only CHLD
- block only CHLD
- /* note: because shell is not in foreground now, e.g. Ctrl-C will send INT to children only! */
- wait4 for children to die or stop - first child exits
- wait4 for children to die or stop - second child exits
- block CHLD TSTP TTIN TTOU
- set fd# 255 foreground process group to our own one
- block only CHLD
- block only CHLD
- block nothing
- --- SIGCHLD (Child exited) @ 0 (0) ---
- wait for it - no child (already waited for)
- sigreturn()
- read signal mask
- lotsa sigactions...
- read next command
- execve("/bin/sh", ["sh"], [/* 34 vars */]) = 0
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
- ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
- rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGTERM, {SIG_DFL}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGHUP, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGINT, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGILL, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGTRAP, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGABRT, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGFPE, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGBUS, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGSEGV, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGSYS, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGPIPE, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGALRM, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGTERM, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGXCPU, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGXFSZ, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGVTALRM, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGUSR1, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGUSR2, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTERM, {SIG_IGN}, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTSTP, {SIG_IGN}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGTTOU, {SIG_IGN}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGTTIN, {SIG_IGN}, {SIG_DFL}, 8) = 0
- rt_sigaction(SIGWINCH, {0x807dc33, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- getpid() = 19473
- getppid() = 19472
- rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- getpgrp() = 1865
- dup(2) = 4
- fcntl64(255, F_GETFD) = -1 EBADF (Bad file descriptor)
- dup2(4, 255) = 255
- close(4) = 0
- ioctl(255, TIOCGPGRP, [1865]) = 0
- getpid() = 19473
- setpgid(0, 19473) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [], 8) = 0
- ioctl(255, TIOCSPGRP, [19473]) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- fcntl64(255, F_SETFD, FD_CLOEXEC) = 0
- rt_sigaction(SIGCHLD, {0x807c922, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_DFL}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR)
- ...
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [], 8) = 0
- ioctl(255, TIOCSPGRP, [19473]) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigaction(SIGINT, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTERM, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTERM, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGQUIT, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGQUIT, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGALRM, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTSTP, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTSTP, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTTOU, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTOU, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTTIN, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTIN, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGWINCH, {0x80ca5cd, [], SA_RESTORER|SA_RESTART, 0x6ff7a4f8}, {0x807dc33, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- write(2, "sh-3.00# ", 9) = 9
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- read(0, "s", 1) = 1
- write(2, "s", 1) = 1
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- read(0, "l", 1) = 1
- write(2, "l", 1) = 1
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- ... rest of "sleep 1 | sleep 2" entered...
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- read(0, "2", 1) = 1
- write(2, "2", 1) = 1
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- read(0, "\r", 1) = 1
- write(2, "\n", 1) = 1
- rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
- ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTERM, {SIG_IGN}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGALRM, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTSTP, {SIG_IGN}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTOU, {SIG_IGN}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTIN, {SIG_IGN}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGWINCH, {0x807dc33, [], SA_RESTORER, 0x6ff7a4f8}, {0x80ca5cd, [], SA_RESTORER|SA_RESTART, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
- pipe([4, 5]) = 0
- rt_sigprocmask(SIG_BLOCK, [INT CHLD], [CHLD], 8) = 0
- fork() = 19755
- setpgid(19755, 19755) = 0
- rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
- close(5) = 0
- rt_sigprocmask(SIG_BLOCK, [INT CHLD], [CHLD], 8) = 0
- fork() = 19756
- setpgid(19756, 19755) = 0
- rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
- close(4) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [CHLD], 8) = 0
- ioctl(255, TIOCSPGRP, [19755]) = 0
- rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
- rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
- wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WUNTRACED, NULL) = 19755
- wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WUNTRACED, NULL) = 19756
- rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [CHLD], 8) = 0
- ioctl(255, TIOCSPGRP, [19473]) = 0
- rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
- rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- --- SIGCHLD (Child exited) @ 0 (0) ---
- wait4(-1, 0x77fc9c54, WNOHANG|WUNTRACED, NULL) = -1 ECHILD (No child processes)
- sigreturn() = ? (mask now [])
- rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [], 8) = 0
- ioctl(255, TIOCSPGRP, [19473]) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigaction(SIGINT, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigaction(SIGINT, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTERM, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTERM, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGQUIT, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGQUIT, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGALRM, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {0x808f752, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTSTP, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTSTP, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTTOU, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTOU, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGTTIN, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTIN, {SIG_IGN}, {0x80ca530, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGWINCH, {0x80ca5cd, [], SA_RESTORER|SA_RESTART, 0x6ff7a4f8}, {0x807dc33, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- write(2, "sh-3.00# ", 9) = 9
- getpid() = 19755
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigaction(SIGTSTP, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTIN, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTOU, {SIG_DFL}, {SIG_IGN}, 8) = 0
- setpgid(19755, 19755) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [], 8) = 0
- ioctl(255, TIOCSPGRP, [19755]) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- close(4) = 0
- dup2(5, 1) = 1
- close(5) = 0
- rt_sigaction(SIGINT, {SIG_DFL}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTERM, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGCHLD, {SIG_DFL}, {0x807c922, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- execve("/bin/sleep", ["sleep", "1"], [/* 34 vars */]) = 0
- ...
- _exit(0) = ?
- getpid() = 19756
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- rt_sigaction(SIGTSTP, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTIN, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTTOU, {SIG_DFL}, {SIG_IGN}, 8) = 0
- setpgid(19756, 19755) = 0
- rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [], 8) = 0
- ioctl(255, TIOCSPGRP, [19755]) = 0
- rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
- dup2(4, 0) = 0
- close(4) = 0
- rt_sigaction(SIGINT, {SIG_DFL}, {0x808f7d7, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGTERM, {SIG_DFL}, {SIG_IGN}, 8) = 0
- rt_sigaction(SIGCHLD, {SIG_DFL}, {0x807c922, [], SA_RESTORER, 0x6ff7a4f8}, 8) = 0
- execve("/bin/sleep", ["sleep", "2"], [/* 34 vars */]) = 0
- ...
- _exit(0) = ?
|