Требуется сценарий оболочки для чтения строки с соответствующим содержимым

"Процесс, приостановленный с помощью Ctrl+Z" на самом деле является подмножеством "приостановленного процесса, который является дочерним для этой оболочки", и его легче отследить: это означает, что есть приостановленное фоновое задание.

В zsh вы можете проверить массив jobstates.

if ((${(M)#jobstates:#suspended:*} == 0)); then
  echo There are no suspended jobs
else
  echo There are ${(M)#jobstates:#suspended:*} suspended jobs
fi

В bash или zsh, jobs -s перечисляет только приостановленные задания.

echo "There are $(jobs -s | wc -l) suspended jobs"

10
17.09.2018, 18:57
3 ответа

Если вы бежите

strace -T  sleep 2

вы увидите

nanosleep({tv_sec=2, tv_nsec=0}, NULL)  = 0 <2.000230>

поэтому похоже, что потраченное время указано в секундах.

13
27.01.2020, 19:59

Из исходного кода:

if (Tflag) {
    ts_sub(ts, ts, &tcp->etime);
    tprintf(" <%ld.%06ld>",
        (long) ts->tv_sec, (long) ts->tv_nsec / 1000);
}

Это означает, что время отображается в секундах, а микросекунды (рассчитываются из наносекундного значения )после запятой.

23
27.01.2020, 19:59

Если вы запустите команду straceс флагом -c, она покажет вам таблицу, и время будет указано в секундах:

strace -c -p 3569 # 3569 is PID
strace: Process 3569 attached
^Cstrace: Process 3569 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
99.73    0.016000           8      1971           poll
0.16    0.000025           0       509        75 futex
0.06    0.000010           0      1985      1966 recvmsg
0.06    0.000009           0      2336           mprotect
0.00    0.000000           0       478           read
0.00    0.000000           0        13           write
0.00    0.000000           0        29           mmap
0.00    0.000000           0         9           munmap
0.00    0.000000           0        18           writev
0.00    0.000000           0       351           madvise
0.00    0.000000           0         1           restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.016044                  7700      2041 total

от человека strace

-c

Count time, calls, and errors for each system call and report a summary on program exit. On Linux, this attempts to show system time (CPU time spent running in the kernel) independent of wall clock time. If -c is used with -f or -F (below), only aggregate totals for all traced processes are kept.

6
27.01.2020, 19:59

Теги

Похожие вопросы