Вопрос или проблема
На сервере Solaris 10, если я выполню команду w
, я получаю следующее:
12:26pm работает 85 день(ей), 1:13, 6 пользователей, средняя нагрузка: 0.38, 0.36, 0.38
Пользователь tty вход@ простой JCPU PCPU что
blah pts/1 3Авг15 2дня 632:47 632:47 -bash
root pts/2 4Сен15 6дней 201:05 77:59 -bash
blah pts/3 3Авг15 2дня 72:40 -bash
blah pts/6 13Июл15 60дней 3:24 -bash
root pts/22 12:10pm bash
root pts/23 12:17pm -bash
А когда я выполняю команду who -all
, я получаю
. системный старт 18 Июн 11:13
. уровень работы 3 18 Июн 11:14 3 0 S
LOGIN консоль 12 Июл 13:54 . 4681
zsmon . 18 Июн 11:15 старый 404
LOGIN консоль 18 Июн 11:15 . 876 id= dt term=0 выход=1 (:0)
ostor + pts/1 3 Авг 10:35 старый 29213 ()
init.css . 18 Июн 11:16 старый 1331 id= h1
root + pts/2 4 Сен 08:32 старый 13085 ()
ostor + pts/3 3 Авг 10:41 старый 29867 ()
roxa pts/4 9 Сен 08:45 старый 4082 id=ts/4 term=0 выход=0
roxa pts/5 9 Сен 09:26 старый 4369 id=ts/5 term=0 выход=0
ostor + pts/6 13 Июл 07:45 старый 26750 ()
roxa pts/7 9 Сен 09:28 старый 9010 id=ts/7 term=0 выход=0
roxa pts/8 9 Сен 10:11 старый 9242 id=ts/8 term=0 выход=0
roxa pts/9 9 Сен 10:59 старый 16138 id=ts/9 term=0 выход=0
roxa pts/10 9 Сен 11:01 старый 21040 id=s/10 term=0 выход=0
roxa pts/11 9 Сен 11:02 старый 21238 id=s/11 term=0 выход=0
roxa pts/12 9 Сен 11:19 старый 21514 id=s/12 term=0 выход=0
ostor pts/13 9 Сен 14:29 старый 14367 id=s/13 term=0 выход=0
ostor pts/14 9 Сен 14:58 старый 14548 id=s/14 term=0 выход=0
roxa pts/15 10 Сен 08:28 старый 13820 id=s/15 term=0 выход=0
roxa pts/16 10 Сен 10:16 старый 14340 id=s/16 term=0 выход=0
roxa pts/17 10 Сен 08:40 старый 15219 id=s/17 term=0 выход=0
roxa pts/18 10 Сен 16:51 20:07 17179 id=s/18 term=0 выход=0
roxa pts/19 10 Сен 16:59 19:58 18319 id=s/19 term=0 выход=0
roxa pts/20 11 Сен 08:59 3:54 2313 id=s/20 term=0 выход=0
roxa pts/21 11 Сен 11:20 1:32 20981 id=s/21 term=0 выход=0
root + pts/22 11 Сен 12:10 . 28241 ()
roxa pts/23 11 Сен 12:49 0:10 2623 id=s/23 term=0 выход=0
roxa pts/24 11 Сен 12:24 0:29 226 id=s/24 term=0 выход=0
Как мне завершить все процессы неактивного пользователя roxa?
Если вы завершите только его sshd, возможно, останутся процессы, которые смогут выжить после разрушения их виртуального терминала.
Если вы хотите сделать это аккуратно, вы можете завершить все его процессы с помощью следующей однострочной команды:
for i in `ps uxa|grep ^roxa|sed 's/\+//g'|awk '{print $2}'`;do kill -9 $i;done
Суть этой однострочной команды заключается в том, что она обрабатывает вывод вашей команды ps uxa
через конвейер и извлекает его идентификаторы процессов (PID) из него.
Ответ или решение
Для того чтобы завершить все процессы неактивного пользователя roxa
на сервере Solaris 10, вы можете воспользоваться следующей командой, которая позволит вам очистить все процессы, запущенные этим пользователем.
Вот последовательность действий:
-
Проверьте текущие процессы пользователя:
Сначала убедитесь, что вы видите все активные и неактивные процессы пользователяroxa
. Это можно сделать с помощью следующей команды:ps -u roxa
-
Завершение процессов:
Чтобы завершить все процессы, принадлежащие пользователюroxa
, вы можете выполнить следующую команду:for i in $(ps uxa | grep ^roxa | awk '{print $2}'); do kill -9 $i; done
Разбор команды:
ps uxa
выводит список всех процессов с подробной информацией.grep ^roxa
фильтрует только те строки, которые начинаются с имени пользователяroxa
.awk '{print $2}'
извлекает идентификаторы процессов (PID) из вывода.kill -9 $i
принудительно завершает каждый процесс по его PID.
-
Проверка завершения процессов:
После выполнения команд вы можете снова вызватьps -u roxa
, чтобы убедиться, что все процессы пользователяroxa
были завершены. Если вы видите, что процессы все еще активны, возможно, комментарий к одним из процессов может указывать на необходимость другого подхода к завершению.
Обратите внимание, что использование сигнала -9
(SIGKILL) не позволяет процессу выполнить какую-либо очистку или завершение, поэтому его следует применять с осторожностью. Если это возможно, сначала используйте сигнал -15
(SIGTERM) для корректного завершения процессов, и только в случае необходимости применяйте -9
.
Такой подход гарантирует, что все активные и неактивные процессы пользователя roxa
будут завершены, позволяя вам поддерживать порядок на вашем сервере Solaris.