Очень плохо давать ложные инструкции пользователям Windows. Никакая ОС не должна наносить ущерб чужим данным, поэтому должно быть ясно, что писать файловую систему NTFS с Linux опасно. NTFS должна иметь функции безопасности, которые не могут быть обработаны Linux, и такие функции включают также зашифрованные файлы. Я не думаю, что Linux может сделать это для файловой системы NTFS и в то же время не повредить операционную систему Windows. Linux может безопасно писать только систему FAT. Я свидетельствую о реальных проблемах в своей файловой системе NTFS, потому что Linux не давал мне предупреждения о том, чтобы не играть с файловой системой NTFS, и я потерял все свои файлы. Фактически, то, что делает Linux, является незаконным, потому что должно быть ясное предупреждение, опасное для записи в файловую систему NTFS с ОС Linux.
Этот ответ 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]
Для отображения всех процессов любого конкретного пользователя используйте следующее:
$ 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 в любое время, он содержит полную информацию о времени, поэтому будет легко понять.
Вы можете запускать htop с одной из консолей tty, чтобы вы могли вывести пользователя из xsession, но все же поддерживать открытый терминал (htop лучше верхнего и более легкого для чтения).
CTRL + ALT + F2. Вы можете войти в текстовую сессию под другим именем пользователя и затем использовать:
sudo htop
, чтобы запустить ее. Используйте CTRL , а затем прокрутите страницу до USER с помощью кнопки со стрелкой и нажмите Enter.
Чтобы вернуться к xsession, нажмите Enter + ALT + F7.
Чтобы вернуться к xsession, нажмите и F2 + ALT + F2 снова вернуться к tty2 и т. д.
Вы можете использовать ~. / bash_logout, если это необходимо, когда пользователи выходят из системы (обратите внимание, bash shell, например ssh). Но некоторые другие ситуации также описаны в статье / ответе ниже,
superuser.com: create-a-logoff-script-task-for-linux
@heemayl и другие уже описать некоторые из команд, которые вы можете использовать, чтобы получить все еще запущенные процессы, когда пользователи выходят из системы.
Если вам нужны только текущие идентификаторы пользователя, которые вы также можете использовать ниже,
$ id -u username | xargs pgrep -U