Можно ли проверить, будет ли определенный процесс спит или работает?

awk -v sizelimit=5000000 -v outputfilename=shorter_list \
'BEGIN {target=outputfilename ".0000"}; '\
'{sum+=$1; '\
'if(sum>sizelimit) { file_index++; target=outputfilename "." sprintf("%04d",file_index); sum=$1;}; '\
'print $0 >target}' file

должен сделать то, что вы хотите. Тем не менее, вы должны изменить лимит размера. Я использовал меньшее значение для тестирования (что может быть полезно и для вашего тестирования).

4
25.11.2019, 19:10
1 ответ

В Linux вы можете использовать это, чтобы получить статус процесса с заданным PID:

ps -o stat= $pid

Возвращает T, когда процесс остановлен. Итак, если вы работаете в системе Linux, вы можете сделать что-то вроде этого:

if [ "$(ps -o stat= $pid)" = "T" ]; then 
    echo stopped
else 
    echo not stopped
fi

Полный список кодов состояния процесса приведен в man ps:

.
PROCESS STATE CODES
       Here are the different values that the s, stat and state output specifiers
       (header "STAT" or "S") will display to describe the state of a process:

               D    uninterruptible sleep (usually IO)
               I    Idle kernel thread
               R    running or runnable (on run queue)
               S    interruptible sleep (waiting for an event to complete)
               T    stopped by job control signal
               t    stopped by debugger during the tracing
               W    paging (not valid since the 2.6.xx kernel)
               X    dead (should never be seen)
               Z    defunct ("zombie") process, terminated but not reaped by its parent

   For BSD formats and when the stat keyword is used, additional characters may be
   displayed:

           <    high-priority (not nice to other users)
           N    low-priority (nice to other users)
           L    has pages locked into memory (for real-time and custom IO)
           s    is a session leader
           l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
           +    is in the foreground process group
14
27.01.2020, 20:47

Теги

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