В man ps
нем четко указаны различные состояния, которые процесс может иметь в Linux.
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
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.
Даже если X
это состояние процесса, его никогда не должно быть видно. Но так ли это? Есть ли теоретический способ увидеть это как состояние процесса? Или это на 100% невозможно?
linux
linux-kernel
history
xeor
источник
источник
Ответы:
Я немного погрузился в ядро Linux, не зная о том, как оно работает во внутреннем ядре, и не разбираясь в больших знаниях Си. Поэтому, пожалуйста, будьте милы с этой теорией :)
DEAD
Состояние определяется https://github.com/torvalds/linux/blob/master/fs/proc/array.c#L141 и используется на https://github.com/torvalds/linux/blob/master/fs /exec.c#L974 только для возврата статуса. Таким образом, единственный способ, которым это когда-либо можно увидеть, - это если вы проверяете состояние процесса прежде, чем вокруг https://github.com/torvalds/linux/blob/master/fs/exec.c#L986 (или позже, где бы эта функция ни вызывалась из..).Если вы попытаетесь убить мертвый процесс, об этом позаботятся и проигнорируют по адресу https://github.com/torvalds/linux/blob/master/kernel/signal.c#L1363.
Так что в теории ... я думаю, что ответ - да. X как состояние можно увидеть в теории, но, вероятно, никогда не было в реальной жизни ..
Пожалуйста, поправьте меня, если / где я ошибаюсь .. Я совсем не уверен в этом ..
источник
until sleep 0.4 & perl -e '$p = shift; while (1) {open A, "</proc/$p/stat" or last; $_=<A>; print}' $! | grep X; do :; done
4603 (sleep) X 0 -1 -1 0 -1 4202508 0 0 0 0 0 0 0 0 20 0 0 0 175042279 0 0 0 0 0 0 0 0 0 0 0 0 18446744071579306375 0 0 17 0 0 0 0 0 0
.. Вопрос ответил. Х возможно! Благодарность!Вот свидетельство того, с чем мы только что столкнулись в живой системе:
источник
ps
?