Скрипт выхода из Linux на Pardus

0

Я пытаюсь запустить скрипт, когда пользователь вышел из системы. Мой дистрибутив Linux - Pardus, использующий KDE. Как я могу это сделать?

Я слышал о "/.bash_logout", но не смог реализовать это. Где я должен создать файл "/.bash_logout"?

skoroglu
источник

Ответы:

0

Я предполагаю, что вы хотите это для каждого пользователя для следующих

Есть несколько разных вариантов, но сначала, чтобы устранить недоразумение, вы упоминаете «/.bash_logout», но везде, где я видел, подсказывает ~/.bash_logout,

~ это короткий способ сказать "дом этого пользователя". Так что это означает, что вам нужно сделать .bash_logout файл в /home/USERNAME/.bash_logout,

Другой вариант - использовать предложение KDE: /home/USERNAME/.kde4/shutdown/, Добавьте туда скрипты и убедитесь, что они исполняемые ( chmod +x ~/.kde4/shutdown/scriptname.sh ). Если папка не существует, просто сделайте это.

Если вы хотите, чтобы это произошло для все пользователи

использование /usr/shutdown/,

Примечание. У меня нет KDE для проверки специфики KDE.

nerdwaller
источник
/usr/kde/3.5/shutdown хорошо, потому что я хотел. Да, это работает, спасибо. Я мог бы добавить новый sh файл в завершение работы и запустить.
skoroglu
0

Прежде всего, вы можете создать файл в вашем домашнем каталоге с именем .bash_logout,
Обратите внимание на точку перед ним. Это обозначает файлы конфигурации, которые обычно не отображаются при вводе ls если вы не добавите -a вариант.

Сначала проверьте, поддерживает ли ваша система этот файл. (например, он может ничего не делать, если вы не запускаете bash. Возможно, вы используете другую оболочку, например zsh, sh, pinosh, dc, ...

Тестирование это может быть так же просто, как сделать vim ~/.bash_logout и добавление строки echo This works! до конца этого. Выйдите из текстовой консоли и убедитесь, что она повторяет «Это работает!» на экран. Если вы используете графическое окружение, которое закрывает терминал при выходе из него, то размещение другой команды в файле .bash_logout может быть более удобным. (Например, команда touch bash_logout_last_tiggered, Это установит дату изменения файла bash_logout_last_tiggered время, когда команда прикосновения побежала).

Далее читайте дальше поЬир , В основном, когда вы выходите из оболочки, каждая программа, которая все еще работает, получит сигнал, указывающий на ее остановку. Этот сигнал называется HUP (вешать трубку). Название происходит от времени, когда люди использовали телефонные линии для подключения к серверам / Эти соединения иногда прерывались, когда на линии был шум. Затем у вас есть выбор: запускать программы или выполнять очистку. Сделан выбор - отправить всем программам сигнал 1, SigHUP. Затем программы аккуратно очищаются (например, текстовый редактор сохраняет свой файл и завершает работу. Игра сохраняет и завершает работу и т. Д. И т. Д.).

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

Примеры:

cd /usr/src/linux ; make bzImage начнёт компиляцию нового ядра. Это то, что может занять много времени (обычно часы в эпоху 80486).

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

Теперь если я добавлю амперсанд ( & ) к команде он будет работать в фоновом режиме.
Однако он все равно получит sigHup, когда я выйду из системы.

Решение: **nohup** command_here **&**,
Обратите внимание на nohup перед командой и амперсанд в конце (что также означает, что он не будет получать ввод.


Все это предполагает, что вы используете bash и не хотите ничего запускать из менеджера окон KDE Что-то, что, я уверен, также возможно (но это не был заданный вопрос).

Hennes
источник