как убить процесс?

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Demis
старшина
Сообщения: 410
Зарегистрирован: 2015-05-25 14:36:32

как убить процесс?

Непрочитанное сообщение Demis » 2021-04-23 14:33:12

Ламерский вопрос: как убить процесс?

Казалось-бы в чем проблема?
Делай "kill -9 72397" и дело в шляпе, но не все так просто...

1. "kill -9 72397" - не убивает процесс.
2. "kill -1 72397" - не убивает процесс.
3. "kill -KILL 72397" - не убивает процесс.
4. "kill -HUP 72397" - не убивает процесс.
5. "kill -ABRT 72397" - не убивает процесс.

Код: Выделить всё

ps -x|grep -e 72397 -e PID
  PID TT  STAT         TIME COMMAND
72397  2- D+        0:00.00 ls -lAG /var/db
Статус нам рисует D+, что фигня конечно (в том смысле, что "очень не есть хорошо")...

Код: Выделить всё

kill -s STOP 72397
меняет нам статус на Т+

Код: Выделить всё

ps -x | grep -e 72397 -e PID
  PID TT  STAT         TIME COMMAND
72397  2- T+        0:00.00 ls -lAG /var/db
Но не более того.

Если повторить "kill -9 72397", то статус меняется на D+.

Почитав разные форумы - мнение только одно, перезагрузка.
(https://forums.freebsd.org/threads/cant ... ate.56319/
https://forums.freebsd.org/threads/unab ... -ls.71859/
https://lists.freebsd.org/pipermail/fre ... 45518.html
https://serverfault.com/questions/25029 ... s-in-linux
https://listman.redhat.com/archives/red ... 00007.html
https://unix.stackexchange.com/question ... to-d-state
https://serverfault.com/questions/51708 ... -ps-output
https://www.linux.org.ru/forum/admin/10914844)

Но именно перезагрузки и хочется избежать, по крайней мере ближайшие пару месяцев (в силу ряда причин).

Кроме того, если подключиться по ssh и сделать "ls -lAG /var/db" процесс так-же подвисает.
Если грохаешь сессию ssh, то второй процесс "ls -lAG /var/db" так и остается запущенным...
По статусам ведет себя так-же.

Есть смутное предположение, что возможно немного побит /var.

Текущий аптайм машины:

Код: Выделить всё

uptime
11:11AM  up 85 days, 17:45, 2 users, load averages: 11.00, 11.00, 11.00

Код: Выделить всё

uname -a
FreeBSD s5 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r335441: Thu Jun 21 09:28:52 MSK 2018     demis@s5:/usr/obj/usr/src/sys/GENERIC  amd64

Код: Выделить всё

procstat -kk 72397
  PID    TID COMM                TDNAME              KSTACK
72397 100161 ls                  -                   mi_switch+0xe5 sleepq_wait+0x3a sleeplk+0x183 __lockmgr_args+0x32c ffs_lock+0xa5 VOP_LOCK1_APV+0x89 _vn_lock+0x43 vget+0x47 cache_lookup+0x600 vfs_cache_lookup+0xac VOP_LOOKUP_APV+0x83 lookup+0x701 namei+0x486 kern_statat+0x98 sys_fstatat+0x2c amd64_syscall+0x6c4 Xfast_syscall+0xfb
Вот соответственно и возникает вопрос: как все-таки убить процесс не перезагружая машину?
Есть соображения?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2534
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

как убить процесс?

Непрочитанное сообщение skeletor » 2021-04-23 15:05:01

Если процесс невозможно убить по kill -9, значит что-то с I/O. Именно на нём и подвисает процесс так, что без ребута не убить. Проверьте через fsck разделы, заодно посмотрите smart дисков.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Demis
старшина
Сообщения: 410
Зарегистрирован: 2015-05-25 14:36:32

как убить процесс?

Непрочитанное сообщение Demis » 2021-04-23 23:22:55

Спасибо.
Собственно, в итоге, так и сделал.

Но перед этим еще помучался...
Еще одил нинк нарыл:
https://unix.stackexchange.com/question ... s-not-work
Где интересные комменты вроде таких:

Код: Выделить всё

ps Al
You will see something like:

0 Z  1000 24589     1  0  80   0 -     0 exit   ?        00:00:00 soffice.bin <defunct>

(Note the "Z" on the left)

If the 5th column is not 1, then it means it has a parent process. 
Try killing that parent process id.

If its PPID = 1, DON'T KILL IT!!, 
think which other devices or processes may be related to it.
Попробовал так-же и так:

Код: Выделить всё

dtrace -p 72397
виснет, но отзывается на Ctrl+C

Цепочка процессов "по ранжиру" выглядела так:

Код: Выделить всё

 UID   PID  PPID CPU PRI  NI     VSZ    RSS MWCHAN   STAT TT          TIME COMMAND
   0     1     0   0  20   0    5408   1040 wait     ILs   -       0:00.02 /sbin/init --
   0 72391     1   0  20   0   43744   3080 wait     I     2-      0:00.01 su
   0 72392 72391   0  20   0   19660   4340 pause    I     2-      0:00.01 _su (csh)
   0 72397 72392   0  20   0   15088   2836 ufs      D+    2-      0:00.00 ls -lAG /var/db
Проверка показала незначительные проблемки на / и на /var :

Код: Выделить всё

fsck /
** /dev/ada0p2 (NO WRITE)
** Last Mounted on /
** Root file system
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
UNREF FILE I=131508  OWNER=root MODE=100600
SIZE=0 MTIME=Apr 20 03:01 2021
CLEAR? no

UNREF FILE I=131527  OWNER=root MODE=100600
SIZE=0 MTIME=Apr 20 03:01 2021
CLEAR? no

** Phase 5 - Check Cyl groups
6794 files, 122746 used, 385037 free (1221 frags, 47977 blocks, 0.2% fragmentation)


** /dev/ada0p4 (NO WRITE)
** Last Mounted on /var
** Phase 1 - Check Blocks and Sizes
INCORRECT BLOCK COUNT I=4012899 (160 should be 152)
CORRECT? no

** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? no

SUMMARY INFORMATION BAD
SALVAGE? no

BLK(S) MISSING IN BIT MAPS
SALVAGE? no

1359 files, 276605 used, 7812503 free (471 frags, 976504 blocks, 0.0% fragmentation)


fsck /usr
** /dev/ada0p5 (NO WRITE)
** Last Mounted on /usr
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
958531 files, 11863656 used, 4385175 free (311311 frags, 509233 blocks, 1.9% fragmentation)
Смарты, на мой взгляд, красивые.

Код: Выделить всё

smartctl -d atacam -A -T permissive /dev/ada0
smartctl 6.6 2017-11-05 r4594 [FreeBSD 11.1-RELEASE amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   253   100   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0007   100   100   015    Pre-fail  Always       -       8640
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       446
  5 Reallocated_Sector_Ct   0x0033   253   253   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   253   253   051    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0025   253   253   015    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       53146
 10 Spin_Retry_Count        0x0033   253   253   051    Pre-fail  Always       -       0
 11 Calibration_Retry_Count 0x0012   253   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       424
190 Airflow_Temperature_Cel 0x0022   055   055   000    Old_age   Always       -       45
194 Temperature_Celsius     0x0022   103   103   000    Old_age   Always       -       45
195 Hardware_ECC_Recovered  0x001a   100   100   000    Old_age   Always       -       155822
196 Reallocated_Event_Count 0x0032   253   253   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   253   253   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   253   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       4
200 Multi_Zone_Error_Rate   0x000a   100   100   000    Old_age   Always       -       0
201 Soft_Read_Error_Rate    0x000a   253   100   000    Old_age   Always       -       0
202 Data_Address_Mark_Errs  0x0032   100   100   000    Old_age   Always       -       169
Стиснув зубы и бормоча что-то точно отчетливо-невнятно-цензурное пошел в перегрузку.
Прочекался в сингл-моде.
Все заработало - ок.

Обидно, только, из-за такой фигни перегружать машину...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35332
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

как убить процесс?

Непрочитанное сообщение Alex Keda » 2021-05-20 10:55:37

Если var отдельный - принудительно отмонтровать и проверить

Но по дётся перезапустить все что там держало открытые файлы
Убей их всех! Бог потом рассортирует...