Сеанс конечного пользователя Linux

Обновлено: 05.07.2024

Используйте «SIGKILL» или «9» с командой kill, чтобы завершить процесс.

Как завершить сеанс пользователя в Linux?

Удаленное завершение сеанса входа в Unix

  1. Определите оболочку, которую вы хотите уничтожить. …
  2. Чтобы отобразить все запущенные процессы, введите: ps -fu имя пользователя. …
  3. Вы должны увидеть примерно следующее: PID TT STAT TIME COMMAND 13964 v5 I 0:00 elm 13126 ue S 0:00 -bash (bash) 13133 ue R 0:00 ps x 13335 v5 S 0:00 -bash ( баш)

Как закрыть сеанс в Unix?

Это делается путем подачи команды kill из сеанса терминала, которая указывает системе Unix завершить процесс.

  1. Откройте сеанс терминала, если вы находитесь в графическом пользовательском интерфейсе или графическом интерфейсе. …
  2. Введите «ps – aux» в командной строке терминала.

Как убить пользовательский процесс?

  1. Какие процессы можно остановить в Linux?
  2. Шаг 1. Просмотр запущенных процессов Linux.
  3. Шаг 2. Найдите процесс, который нужно убить. Найдите процесс с помощью команды ps. Поиск PID с помощью pgrep или pidof.
  4. Шаг 3. Используйте параметры команды Kill для завершения процесса. убить команду. Команда pkill. …
  5. Ключевые выводы по завершению процесса Linux.

Как составить список пользователей в Linux?

Чтобы получить список пользователей в Linux, необходимо выполнить команду «cat» в файле «/etc/passwd». При выполнении этой команды вам будет представлен список пользователей, доступных в настоящее время в вашей системе. Кроме того, вы можете использовать команду «меньше» или «больше» для навигации по списку имен пользователей.

Как вы явно завершаете сеанс пользователя?

Ответ: Сессия. Abandon() используется для явного прекращения сеанса пользователя.

Что делает kill в Linux?

Команда kill в Linux (находится в /bin/kill) — это встроенная команда, которая используется для завершения процессов вручную. Команда kill отправляет сигнал процессу, который завершает процесс.

Что делает Pkill в Linux?

pkill — это утилита командной строки, которая отправляет сигналы процессам запущенной программы на основе заданных критериев. Процессы могут быть указаны по их полным или частичным именам, пользователю, запускающему процесс, или другим атрибутам.

Как увидеть процессы в Linux?

Проверить запущенный процесс в Linux

  1. Откройте окно терминала в Linux.
  2. Для удаленного сервера Linux используйте команду ssh для входа в систему.
  3. Введите команду ps aux, чтобы увидеть все запущенные процессы в Linux.
  4. Кроме того, вы можете ввести команду top или команду htop для просмотра запущенного процесса в Linux.

В чем разница между командой kill и Pkill?

Основное различие между этими инструментами заключается в том, что kill завершает процессы на основе идентификатора процесса (PID), а команды killall и pkill завершают запущенные процессы на основе их имен и других атрибутов.

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

Чтобы продолжить, следуйте приведенным ниже инструкциям.

  1. Нажмите клавишу «Ctrl + Alt + Delete» или «Window + X» и выберите пункт «Диспетчер задач».
  2. Перейдите на вкладку "Процессы".
  3. Выберите процесс, который хотите завершить, и выполните одно из указанных ниже действий. Нажмите клавишу Удалить. Нажмите кнопку "Завершить задачу".

Как запустить процесс в Linux?

Запуск процесса

Самый простой способ запустить процесс — ввести его имя в командной строке и нажать Enter. Если вы хотите запустить веб-сервер Nginx, введите nginx.

Иногда вам может понадобиться завершить один или несколько сеансов пользователя в Linux. Есть несколько способов убить пользовательские сеансы в Linux. Вы всегда можете убить свою сессию. Но для того, чтобы иметь возможность убивать другие сеансы пользователей, вам необходимо иметь привилегии root или sudo. В этой статье мы узнаем, как завершить сеанс пользователя в Linux.

Как завершить сеанс пользователя в Linux

Каждая сессия пользователя — это процесс, и чтобы завершить сессию пользователя, вам нужно найти ответственный за нее процесс и завершить его с помощью команды KILL, PKILL, SIGTERM или SIGKILL.

SIGTERM используется для корректного завершения процесса. Однако он может быть заблокирован, если процесс занят ожиданием ввода-вывода. Когда вы запускаете команду KILL, она отправляет команду SIGTERM под капотом.

SIGKILL немедленно завершит процесс вместе с его дочерними процессами. Он завершит процесс любой ценой, так что это грубый способ убить процессы.

Сначала нам нужно узнать все пользовательские сеансы, запущенные в вашей системе, с помощью команды w.

Завершить сеанс с помощью телетайпа

Вы можете завершить процесс сеанса, обратившись к значению его столбца TTY выше. Каждый сеанс пользователя будет иметь значение TTY, начинающееся с pts/. Вот команда для уничтожения процесса со значением TTY как PTS/1 с помощью команды pkill.

Завершить сеанс с помощью команды Killall

Вы также можете завершить все сеансы определенного пользователя с помощью команды killall, за которой следует параметр -u. Вот команда для завершения всех сеансов, относящихся к пользователю John.

Завершить сеанс с помощью команды Kill

Вы также можете использовать команду Kill для завершения сеансов, но это обходной процесс, поскольку для команды kill требуется PID процесса, который будет уничтожен. Итак, сначала нам нужно найти PID процесса, выполняющего сеанс пользователя. Вот команда для получения PID пользовательского сеанса, используя его значение TTY.

Вот пример получения PID pts/2. Это второй столбец в выводе следующей команды.

Как только вы узнали PID процесса, введите команду kill, чтобы убить его.

В этой статье мы рассмотрели несколько способов закрытия пользовательских сеансов в Linux. Вы можете убить его, ссылаясь на его значение TTY, имя пользователя или PID, в зависимости от ваших требований. Но во всех случаях у вас должны быть права на удаление пользовательских сессий, иначе вышеуказанные команды у вас не сработают.

Информационный аватар участника

9, 0

Информационный аватар участника

2965, 5

Информационный аватар участника

4, 0

сначала найдите процесс, например, пользователь, вошедший в систему с помощью ssh .

пс-эф | grep ssh


затем получите pid и завершите процесс.

Информационный аватар участника

3 216, 33 

[сообщение слишком короткое]

перебор

Информационный аватар участника

4 463, 16 

покажет pid процесса входа. Уничтожение этого процесса приведет к выходу пользователя из системы, однако вам также может потребоваться очистить дочерние процессы, которые могут продолжать работать без родительского, если они игнорируют SIGHUP.

Информационный аватар участника

25, 0

перебор

Информационный аватар участника

4 463, 16 

Еще 10 обсуждений, которые могут вас заинтересовать

1. Красная шляпа

Сеанс сетевого пользователя

уважаемые коллеги, помогите пожалуйста, у меня есть сервер linux (linux 5.3) с базой данных oracle 10g для приложения. есть 98 пользователей, которые используют это приложение оракула по локальной сети. но в рабочее время сеанс пользователя увеличивается (минимум 150 пользователей), потому что один пользователь работает на другом клиенте. (7 ответов)

Обсуждение начато: Абрар

2. Программирование оболочки и создание сценариев

Напишите скрипты для уничтожения бездействующего пользователя на 60 минут. и отправить список пользователей по электронной почте администратору в текстовом файле

Ребята, я написал один скрипт для следующего условия, сославшись на один из онлайн-сообщений на этом форуме. Пожалуйста, поправьте его, если я что-то упустил в нем. (ОС: AIX 5.3) Список неактивных пользователей. (Я использовал команду whoidle, чтобы получить список первых 15 пользователей и получить имя пользователя, время простоя, pid и время входа в систему). (4 ответа)

Обсуждение начато: sumit30

3. Солярис

Завершить бездействующий сеанс DT

Привет, мне нужно убить простаивающие сеансы dt с помощью скрипта, кто-нибудь может сказать мне, как это сделать? RJS (2 ответа)

Обсуждение начато: rajasekg

4. Программирование оболочки и создание сценариев

Функция завершения установленного сеанса rsh

Привет, я знаю, что это звучит безумно :eek: признателен, если кто-нибудь предоставил мне решение для моего нижеприведенного случая, нижеприведенный скрипт проверяет доступность базы данных на многих серверах, устанавливая сеанс rsh (один за другим), иногда один из серверы падают, и при этом выполняется скрипт. (0 ответов)

Обсуждение начато: bejo4ever

5. Солярис

Элегантные решения для завершения сеанса telnet/ssh

У нас есть общая учетная запись пользователя "user1" в Solaris 8, которая используется приложением. Я не хочу, чтобы пользователи использовали telnet/ssh, используя эту учетную запись. Вместо этого, если они хотят получить доступ, они должны выполнить su или sudo после входа в систему со своим собственным идентификатором. Мои более ранние попытки сделать это путем отключения. (7 ответов)

Обсуждение начато: boshyd

6. AIX

ограничение сеанса пользователя

привет, я столкнулся с проблемой из удаленной системы, если я вхожу в свою машину AIX5.3 как пользователь root (через telnet), срок действия сеанса не истекает в течение 2 часов, даже если сеанс поддерживается в идеальном состоянии. Но всякий раз, когда я делаю то же самое вещь от другого пользователя, то сессия теряется в течение 10 минут (если сессия сохраняется. (2 ответа)

Обсуждение начато: pchangba

7. AIX

ограничение сеанса пользователя

Я хочу ограничить вход пользователя в систему в соответствии с количеством сеансов. Например, пользователь с именем «patrik» может одновременно войти в систему с 12 станций через telnet через 13-ю, если какое-то тело попытается подключиться к 13-й сессии через telnet, это не должно разрешаться, пока какая-либо из 12 сессий не будет закрыта. возможно ли . я думаю. (2 ответа)

Обсуждение начато: pchangba1

8. UNIX для чайников, вопросы и ответы

Удаление сеанса пользователя

Вчера я вошел в систему и запустил что-то, из-за чего мой идентификатор завис. Я вышел из сеанса, а затем снова вошел в систему, и мой идентификатор из исходного сеанса все еще там. Сегодня утром я снова проверил, и идентификатор все еще там (я проверил с помощью команды WHO). Как я могу убить эту первую сессию, используя. (7 ответов)

Обсуждение начато: jbrubaker

9. HP-UX

отслеживание сеанса пользователя

привет, кто-нибудь знает, как отследить сеанс пользователя в системе unix: я хочу регистрировать эти вещи 1- вход в систему 2- дата начала сеанса 3- дата закрытия сеанса я пробовал кто и последний, но они не не сообщаю время закрытия сеанса с уважением hmaiida (2 ответа)

Обсуждение начато: hmaiida

10. UNIX для продвинутых и опытных пользователей

Сеанс входа пользователя

Проблема в AIX 4.3.3 со следующей ошибкой, когда более 2 пользователей пытаются войти на сервер. 3004-312 Все доступные сеансы входа в систему используются. . (1 ответ)

Я хочу завершить все запущенные процессы определенного пользователя с помощью сценария оболочки или собственного кода в системе Linux.

Должен ли я читать каталог /proc и искать их?

Есть идеи? Существует ли динамическое сопоставление pids с UID в Linux? Разве это не в процедуре?

Если нет, то где хранится этот список? Должен ли я читать из него? Кроме того, где находится статический список всех UID в системе, чтобы я мог подтвердить, что этот пользователь существует, а затем приступить к уничтожению всех процессов, запущенных под ним?


Вы хотите, чтобы для этого был инструмент (pkill, slay, другие существуют), или вы хотите написать его самостоятельно? Если первое, сайт обмена стеками суперпользователя, вероятно, лучше. Если последнее, сканирование /proc и создание заметок для всех процессов конкретным пользователем - это путь. Например, исходный код утилиты pkill покажет, как это сделать.

@Caleb: я хотел убить процессы, прочитав /proc, поскольку я не знал ни одного инструмента, который бы это делал. Также теперь я обнаружил, что кроме «kill», «pkill», «skill» и т. д. в моей системе недоступны. В этом случае, я думаю, мне нужно посмотреть на альтернативные сценарии оболочки, чтобы прочитать / proc и найти способ получить процессы под одним пользователем. Есть идеи?

Относительно «статического списка всех UID… чтобы я мог подтвердить, что этот пользователь существует»: такой вещи, как проверка идентификатора пользователя, не существует. Имена пользователей берутся из базы данных, а идентификаторы пользователей — это то, что выбирает процесс, запускающий setuid().

6 ответов 6

Используйте pkill -U UID или pkill -u UID или имя пользователя вместо UID. Иногда может сработать навык -u ИМЯ ПОЛЬЗОВАТЕЛЯ, другим инструментом является killall -u ИМЯ ПОЛЬЗОВАТЕЛЯ.

Навык был специфичен для Linux и теперь устарел, а pkill более переносим (Linux, Solaris, BSD).

pkill - . сигнальные процессы на основе имени и других атрибутов

навык, ловкость . Эти инструменты устарели и не переносимы. Синтаксис команды плохо определен. Рассмотрите возможность использования killall, pkill

killall - убивать процессы по имени

Я думаю, что любая утилита, используемая для поиска процесса в стиле Linux/Solaris /proc (procfs), будет использовать полный список процессов (сделав некоторый readdir /proc ). Я думаю, они будут перебирать цифровые подпапки /proc и проверять каждый найденный процесс на соответствие.

Чтобы получить список пользователей, используйте getpwent (будет получен один пользователь за вызов).

Инструменты

skill (procps и procps-ng) и killall (psmisc) используют вызов библиотеки getpwnam для анализа аргумента параметра -u, и анализируется только имя пользователя. pkill (procps и procps-ng) использует как atol, так и getpwnam для разбора аргумента -u / -U и позволяет использовать как числовой, так и текстовый спецификатор пользователя.

Читайте также: