Как проверить, какие процессы все еще активны после выхода пользовательского сеанса

Очень плохо давать ложные инструкции пользователям Windows. Никакая ОС не должна наносить ущерб чужим данным, поэтому должно быть ясно, что писать файловую систему NTFS с Linux опасно. NTFS должна иметь функции безопасности, которые не могут быть обработаны Linux, и такие функции включают также зашифрованные файлы. Я не думаю, что Linux может сделать это для файловой системы NTFS и в то же время не повредить операционную систему Windows. Linux может безопасно писать только систему FAT. Я свидетельствую о реальных проблемах в своей файловой системе NTFS, потому что Linux не давал мне предупреждения о том, чтобы не играть с файловой системой NTFS, и я потерял все свои файлы. Фактически, то, что делает Linux, является незаконным, потому что должно быть ясное предупреждение, опасное для записи в файловую систему NTFS с ОС Linux.

1
задан 14 April 2015 в 00:02

4 ответа

Этот ответ Radu дает вам полный обзор того, как выполнить конкретный скрипт при выходе из системы или завершении работы.

Что вы можете сделать, так это создать скрипт вроде этого

#!/bin/bash
ps -u username > /home/yourusername/outputfile.txt

Затем sudo chmod +x scriptname и добавить строку

session-cleanup-script=/path/to/script в /etc/lightdm/lightdm.conf

Что касается выключения. , , Я считаю, что во время выключения /etc/rc6.d/S20sendsigs, который посылает сигналы об удалении ко всем заданиям, поэтому вы можете запустить этот сценарий с именем файла S10_scriptname, чтобы запустить его перед этим скриптом (см. Ответ на вопрос Radu для получения дополнительной информации)

Изменить: начиная с 14.04, lightdm.conf не создается по умолчанию, поэтому вам может понадобиться создать этот файл в каталоге /etc/lightdm/lightdm.conf.d/, причем первая строка говорит [Seat Defaults]

2
ответ дан 23 May 2018 в 21:25
  • 1
    По-видимому, /etc/lightdm/lightdm.conf не существует в моей системе. Единственным файлом, который существует в каталоге lightdm, является users.conf, возможно, это файл, который я должен изменить, или мне нужно создать файл lightdm.conf или ...? – Paranoid Panda 14 April 2015 в 13:21
  • 2
    @Toroidal, что файл больше не присутствует в 14.04+, если вы создаете один с этим путем, он будет либо бесполезным, либо может немного испортиться. Я считаю, что теперь мы создаем отдельные файлы в файле /etc/lightdm/lightdm.conf.d – mchid 14 April 2015 в 14:56
  • 3
    @mchid Я запускаю 14.04, обновлен с 13.04. Так что это остаток от 13.04, и не создан в новой установке 14.04? – Sergiy Kolodyazhnyy 14 April 2015 в 15:01
  • 4
    нет, сэр. это создало большую часть головной боли для пользователей, которые привыкли настраивать этот файл. теперь есть каталог lightdm.conf.d, где вы найдете отдельные файлы. вы можете создать файл здесь, чтобы установить параметры. – mchid 14 April 2015 в 15:57
  • 5
    @mchid Спасибо, что сообщили нам. Я отредактировал свой ответ, чтобы включить эту информацию – Sergiy Kolodyazhnyy 14 April 2015 в 16:01

Для отображения всех процессов любого конкретного пользователя используйте следующее:

$ ps -fu "username"

Например:

$ ps -fu foobar

Чтобы сохранить его в файле:

$ ps -fu foobar > ~/ps_foobar

Вот один лайнер, который можно использовать через cron или любой другой механизм репликации:

[[ $(ps -u foobar | wc -l) -gt 1 ]] && echo "user foobar has process running" || echo "user foobar has no process running"

Чтобы проверить журналы при выключении (насколько это возможно, можно зарегистрировать) :

tail -f /var/log/syslog  ## Run it prior to shutdown

Или просто прочитайте файл /var/log/syslog в любое время, он содержит полную информацию о времени, поэтому будет легко понять.

1
ответ дан 23 May 2018 в 21:25

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

CTRL + ALT + F2. Вы можете войти в текстовую сессию под другим именем пользователя и затем использовать:

sudo htop

, чтобы запустить ее. Используйте CTRL , а затем прокрутите страницу до USER с помощью кнопки со стрелкой и нажмите Enter.

Чтобы вернуться к xsession, нажмите Enter + ALT + F7.

Чтобы вернуться к xsession, нажмите и F2 + ALT + F2 снова вернуться к tty2 и т. д.

1
ответ дан 23 May 2018 в 21:25

Вы можете использовать ~. / bash_logout, если это необходимо, когда пользователи выходят из системы (обратите внимание, bash shell, например ssh). Но некоторые другие ситуации также описаны в статье / ответе ниже,

superuser.com: create-a-logoff-script-task-for-linux

@heemayl и другие уже описать некоторые из команд, которые вы можете использовать, чтобы получить все еще запущенные процессы, когда пользователи выходят из системы.

Если вам нужны только текущие идентификаторы пользователя, которые вы также можете использовать ниже,

$ id -u username | xargs pgrep -U
0
ответ дан 23 May 2018 в 21:25

Другие вопросы по тегам:

Похожие вопросы: