Виконати сценарій перед вимкненням


21

Коли я вимикаю комп’ютер, я хочу показати деякі очікувані завдання, які мені потрібно виконати, перш ніж покинути офіс ... Я зробив локальну програму для управління цими завданнями, в основному я просто хочу запустити команду і закрити після вбивства додаток виконано.


Може бути корисним для майбутніх користувачів: askubuntu.com/a/747556/295286
Сергій Колодяжний

Відповіді:


7

Ви можете додати свою команду до файлу /etc/gdm/PostSession/Defaultперед exit 0рядком.


Якщо я перейду до опції "Вийти", вона виконає чудово, але якщо я натискаю кнопку "Відключення", з'являється майже миттєвий фіолетовий екран виходу з убунту і виконує сценарій (на екрані, де з'являється логотип ubuntu з 5 маленькими кульками). (випробувано на сон 20).
juanefren

Діалогове вікно "Ви впевнені, що хочете відключити" розташоване тут: / usr / lib / pokazatelj-сесія / gtk-logout-helper, а частина відьми пакета індикаторної сесії написана на C / C ++, тому її досить важко редагувати. Можливо, вам пощастить запитати у якогось розсилки gnome-guru;)
LassePoulsen

6

Це можна зробити, створивши скрипт у /etc/rc0.d (для вимкнення) та /etc/rc6.d (для перезавантаження). Для цього запустіть:

gksu gedit /etc/rc0.d/K01mycustomscript

Відредагуйте сценарій відключення в текстовому редакторі, а потім запустіть:

sudo chmod +x /etc/rc0.d/K01mycustomscript

І якщо ви хочете, щоб він також працював на перезавантаженні, виконайте наступне:

sudo cp /etc/rc0.d/K01mycustomscript /etc/rc6.d/K01mycustomscript

Джерело: ця тема форуму


З його опису звучить так, що він хоче викликати графічний додаток, тому йому потрібен доступ до xserver. У цьому випадку використання init-скриптів не працює.
sepp2k

1
Так ... як говорить @ sepp2k, сценарій працює поза xserver :(
juanefren

4

Для мене звучить питання для superuser.com. У будь-якому разі, після деякого пошуку в Google, я виявив Як запустити сценарій при виході? що говорить, щоб додати скрипт до $ HOME / .bash_logout.

Якщо це не працює, додайте

$HOME/.bash_logout

до / etc / gdm / PostSession / Default, щоб правильно виконати сценарій виходу.

Якщо перед відключенням користувач все одно вийшов із системи, це повинно охоплювати обидві бази.


1
Оскільки він, мабуть, не хоче, щоб сценарій запускався кожного разу, він виходить з програми bash (тобто кожного разу, коли він закриває вікно терміналу), я не думаю, що це гарна ідея писати команду в .bash_logout. Однак написання цього повідомлення в PostSession / Default виглядає для мене гарною ідеєю.
sepp2k

У цього файлу вже є, але схоже, що він не працює (я спав 20, і він не дочекався відключення.)
juanefren

.bash_logout не запускається, коли ви закриваєте термінал, він запускається лише тоді, коли ви виходите з сеансу входу в термінал (тобто, якщо ви виходили з realTTY), а не під час виходу з gnome.
LassePoulsen

Чому це було б питанням для суперпользователя? Якщо питання про Ubuntu, це питання.
NN

2

Якщо це робити, ./app-to-run && sudo shutdown -h nowкомп'ютер повинен вимкнутись, як тільки буде запущено додаток.


1
Це було б дуже грубо відключення. Ви скоріше хочете зателефонувати на скрипт відключення робочого столу.
txwikinger

Судо може попросити користувача ввести пароль у випадку, якщо додаток для запуску буде досить довгим ... Тому він ніколи не завершиться.
самб

1

Майже така ж відповідь, ніж Томмі Брунн, але без ризику зависати з запитом кореневого пароля:

sudo sh -c "./app-to-run; shutdown -h now"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.