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

Как убить все процессы пользователя в Linux

Как мы знаем, Linux — многопользовательская ОС, поэтому с каждым пользователем могут быть связаны его собственные процессы. Такое разделение существует в целях безопасности. Запуская ту или иную программу от имени непривилегированного пользователя, ОС снижает риски несанкционированного проникновения и риски повреждения системных файлов.

В этой статье мы расскажем о том, как завершить все запущенные процессы конкретного пользователя.

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

Для начала сформируем перечень всех процессов всех пользователей. В терминале Linux выполним следующую команду:

Как видно на скриншоте, имеются процессы, связанные с тремя пользователями (root, mint1 и mint). Допустим, нам срочно понадобилось завершить все процессы пользователя mint1.

Здесь следует немного подробнее остановиться на самом понятии процесса в Linux. Процесс – программа, запущенная в виртуальном адресном пространстве. Каждый процесс имеет свой уникальный номер или идентификатор — PID (Process Identificator). Работая с процессами, операционная система идентифицирует процессы именно по PID.

Для того, чтобы убить ненужные процессы, достаточно убить все PID процессов конкретного пользователя (в данном случае mint1). Для этого можно просто скопировать номера идентификаторов этого пользователя и ввести следующую команду:

sudo kill -9 3501 4333

Однако, количество PID может быть куда больше двух. Да и выполнить все действия вообще-то тоже можно с помощью одной команды, умещающейся в одну строку.

Например, используем конвейер и программу grep ( символ | обозначает передачу результатов выполнения первой команды второй команде по конвейеру):

ps au | grep -e ‘^mint1’

С помощью grep были выбраны все процессы пользователя mint1. Далее необходимо из второй колонки слева выбрать все PID. Сделаем это с помощью программы awk, добавив, соответственно, ещё один конвейер:

ps au | grep -e ‘^mint1’ | awk ‘

Теперь нужно убить полученные значения PID. Опять добавим конвейер (в данном и последующих примерах все команды выполняются от имени суперпользователя root) и выполним группу команд:

ps au | grep -e ‘^mint1’ | awk ‘‘ | xargs kill -9

С помощью такой конвейеризованной группы команд мы завершили все процессы пользователя mint1.

Подобный конвейер можно было бы сформировать и так:

ps aux | awk ‘/^mint1/ ‘ | xargs kill -9

Кроме того, для того, чтобы убить все процессы пользователя в Linux, можно воспользоваться также следующими командами:

killall -u mint1

Однако и это ещё не всё. Нужно ещё проверить наличие процессов, связанных с пользователем mint1, и их состояние. Сделаем это с помощью команды:

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

Читайте также:  Как через командную строку стать администратором windows 10

Источник

Завершить сессию другого пользователя.

killall -u user -15
killall -u user -9

Как-то слишком очевидно и жестоко.
Ведь завершает кто-то же сессию по нажатию кнопки «Завершить сеанс. » в Ubuntu например.
Кто? Как?

про кеды не знаю

Хорошо — пусть только гномовскую. Но завершить-то как? То что делает это gnome-session вроде да — ясно. А как его потдтолкнуть к этой мысли не заходя в графический сеанс пользователя?

Дома я неоригинален:

А если попробовать

su -l имя_пользователя

>по wall посылаю предупреждение

А его видно пользователям X?

Не, в Иксах не видно. Для иксов xmessage, но для этого надо в иксах стать этим пользователем.

** (gnome-session-save:6701): WARNING **: Failed to call logout: The name org.gnome.SessionManager was not provided by any .service files

Но ГУЙ не нужен.

Тут вот какое дело — домочадцы не разлогиниваются после того как поюзают домашнюю машину. А когда у дочери открыт и стоит на паузе Totem, а у жены открыта Opera с десятком вкладок, пашет Beagle и Deluge, то в Nexuiz уже играть не очень комфортно.

Заходить и разлогинивать их руками лень. Какой бы скриптик написать, что бы запустил и остался в одиночестве, хотя бы на компьютере )))

Кстати, а как вы боретесь с кодировкой в xmessage — у меня русские буквы не отображаются. У Убунтологов есть notify-send конечно, но хотелось бы общих решений.

Мои юзеры english знают) Встречались скрипты на перле использующие libnotify. Можно рыть в эту сторону.

ну найти и убить все процессы с uid больше 1000 кроме (туту чписок исключений), что сложного?

>Кстати, а как вы боретесь с кодировкой в xmessage — у меня русские буквы не отображаются. У Убунтологов есть notify-send конечно, но хотелось бы общих решений.

1) использовать KOI8-R+фонт соответствующий.

2) использовать gmessage, gxmessage.

Зачем -15, зачем -9? Просто килл ит виз файр. мягко и безболезненно. Остальные если что потом видишь, сделаешь контрольный с -KILL

ну или kdialog, ежели кеды. Русский понимают (в UTF)

Источник

Выход из системы

В строках, выведенных программой last , указан не только момент регистрации пользователя в системе, но и момент завершения работы. Можно представлять Linux как закрытое помещение: чтобы начать работать нужно сначала войти в систему (зарегистрироваться, пройти процедуру идентификации), а после того, как работа закончена, нужно из системы выйти. В том случае, если в систему вошло несколько пользователей, каждый из них должен выйти, завершив работу, причём совершенно не имеет значения, разные это пользователи или «копии» одного и того же.

Вход пользователя в систему означает, что нужно принимать и выполнять его команды и возвращать ему отчёты о выполненных действиях, например, предоставив ему интерфейс командной строки. Выход означает, что работа от имени данного пользователя завершена и более не следует принимать от него команды. Весь процесс взаимодействия пользователя с системой с момента регистрации до выхода называется сеансом работы. Причём если пользователь входит в систему несколько раз под одним и тем же именем, ему будут доступны несколько разных сеансов работы, не связанных между собой.

Читайте также:  Эмулятор java для windows

В наших примерах Мефодий зарегистрирован в системе дважды: на первой и второй виртуальных консолях. Чтобы завершить работу на любой из них, ему достаточно в соответствующей командной строке набрать команду logout .

[methody@localhost methody]$ logout
Welcome to Some Linux / tty1
localhost login:

Пример 11. Команда logout

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

Есть и другой, ещё более «немногословный» способ сообщить системе, что пользователь хочет завершить текущий сеанс работы. Нажав Alt+F2 Мефодий попадёт на вторую виртуальную консоль, где всё ещё открыт сеанс для пользователя « methody » и нажмёт сочетание клавиш Ctrl+D, чтобы прекратить и этот сеанс. Комбинация клавиш Ctrl+D приводит не к передаче компьютеру очередного символа, а к закрытию текущего входного потока данных. Грубо говоря, командная оболочка вводит команды пользователя с консоли, как если бы она читала их построчно из файла. Нажатие Ctrl+D сигнализирует ей о том, что этот «файл» закончился, и теперь ей неоткуда больше считывать команды. Такой способ завершения совершенно аналогичен явному завершению командной оболочки командой logout .

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

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

Модератор: SLEDopit

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

Сообщение vlav » 13.03.2010 16:05

Re: Консольная команда завершение сеанса пользователя

Сообщение SLEDopit » 13.03.2010 16:57

(no confirmation, no shutdown/logout only, force now) — что значат цифры

Или, если нужно вырубить иксы вообще, то добавляем в sudo юзеру разрешения на k(g,x,etc)dm и

Re: Консольная команда завершение сеанса пользователя

Сообщение vlav » 14.03.2010 03:00

Re: Консольная команда завершение сеанса пользователя

Сообщение SLEDopit » 14.03.2010 03:41

Re: Консольная команда завершение сеанса пользователя

Сообщение zombie » 14.03.2010 10:27

Re: Консольная команда завершение сеанса пользователя

Сообщение vlav » 14.03.2010 11:06

/usr/bin/killall -9 -u user
реально все убивает, но корректно конечно не завершает

Re: Консольная команда завершение сеанса пользователя

Сообщение BIgAndy » 14.03.2010 12:53

Вместо SigKill импользутей SigTerm. Будет удивать корректнее.

Хотя за три года использования особых проблем с таким (sigkill) завершением замечено не было.

Зы. Смежный вопрос: Как кто отслеживает активность пользователя и в случае ее отсутствия (событий клавиатуры или мыши) прибивать процессы пользователя?

Источник

Ubuntu Documentation

По завершении работы с компьютером его можно выключить, перевести в спящий режим (для экономии энергии) или оставить включённым, просто завершив сеанс.

Завершение сеанса и переключение пользователей

Чтобы у других пользователей была возможность использования вашего компьютера, можно завершить сеанс работы или выполнить переключение пользователя без завершения сеанса. При переключении пользователей все запущенные приложения продолжают работать, после обратного переключения всё будет в том же самом состоянии, в котором было, когда вы переключили пользователя.

Читайте также:  Все для linux debian

To Log Out or Switch User , click the system menu on the right side of the top bar, click your name and then choose the correct option.

Пункты Завершить сеанс и Сменить пользователя появляются в меню только если в системе имеется более одной учётной записи пользователя.

Блокирование экрана

If you’re leaving your computer for a short time, you should lock your screen to prevent other people from accessing your files or running applications. When you return, you will see the lock screen . Enter your password to log back in. If you don’t lock your screen, it will lock automatically after a certain amount of time.

To lock your screen, click the system menu on the right side of the top bar and select Lock from the menu.

When your screen is locked, other users can log in to their own accounts by clicking Log in as another user at the bottom right of the login screen. You can switch back to your desktop when they are finished.

Смотрите также

  • Автоматическая блокировка экрана — Предотвращение доступа других людей к вашему рабочему столу, когда вы отходите от компьютера.
  • Экран блокируется слишком быстро — Измените время ожидания перед блокировкой экрана в настройках Конфиденциальность .

Ждущий режим

To save power, suspend your computer when you are not using it. If you use a laptop, the system, by default, suspends your computer automatically when you close the lid. This saves your state to your computer’s memory and powers off most of the computer’s functions. A very small amount of power is still used during suspend.

To suspend your computer manually, click the system menu on the right side of the top bar, expand Power Off / Log Out , and select Suspend .

Смотрите также

  • Set up automatic suspend — Configure your computer to suspend automatically.
  • Уменьшение потребляемой мощности и увеличение времени работы от аккумулятора — Советы по уменьшению энергопотребления компьютера
  • Что происходит при переходе компьютера в ждущий режим? — В ждущем режиме компьютер «засыпает» и потребляет меньшую мощность.

Выключение или перезапуск

If you want to power off your computer entirely, or do a full restart, click the system menu on the right side of the top bar, expand Power Off / Log Out , and select Power Off… . A dialog will open offering you the options to either Restart or Power Off .

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

Если нужно перенести компьютер в другое место, но у него нет аккумулятора, или аккумулятор плохо держит заряд, его можно выключить. Выключенный компьютер не потребляет электроэнергию , в отличие от компьютера переведённого в ждущий режим.

Источник

Оцените статью