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
должен сделать то, что вы хотите. Тем не менее, вы должны изменить лимит размера. Я использовал меньшее значение для тестирования (что может быть полезно и для вашего тестирования).
В 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