Когда я ps -elf|grep python
например, в свою систему, я вижу следующее:
1 S 1000 6020 6008 0 80 0 - 9914 poll_s Jul12 ? 00:00:01 python manage.py run_gunicorn -t 3600 -w 8 -b 127.0.0.1:8000 0 S 1000 22496 22491 0 80 0 - 10477 ep_pol 12:32 ? 00:00:10 /var/lib/mywebapp/env/bin/python /var/lib/mywebapp/env/bin/pserve development.ini
В чем разница между poll_s
и ep_pol
?
Чтобы отобразить немного больше имени функции WCHAN
, вы можете использовать, например:
ps -e -o pid,wchan=WIDE-WCHAN-COLUMN -o comm
Это покажет вам, что две функции: ep_poll
и poll_schedule_timeout
.
Первая из них находится в fs/eventpoll.c
в ядре и связана с установкой epoll
, в частности, с системным вызовом epoll_wait
.
Другой находится в fs/select.c
и будет использоваться как для «простого» poll
системного вызова, так и для select
.
Таким образом, они оба «ждут чего-то, что связано с событиями», ожидания, но для разных системных объектов.