Как вы знаете, любые эмуляторы терминала были закрыты после выполнения своей работы.
Но если вы хотите, чтобы gnome-терминал не закрывался с помощью этого скрипта в /etc/pm/sleep.d
пути (этот скрипт заставляет терминал оставаться открытым, пока вы не нажмете Enter):
sudo nano /etc/pm/sleep.d/myscript
Затем вставьте этот контент в ваш скрипт:
#!/bin/bash
case $1 in
thaw|resume) gnome-terminal --command 'bash -c "compiz --replace &; read line"'
;;
esac
Затем сделайте его исполняемым этой командой:
sudo chmod a+x /etc/pm/sleep.d/myscript
Я надеюсь, что это работа для вас.
ОБНОВИТЬ:
Спасибо, что поделился. Мне было любопытно, почему мой системный скрипт не работает. Моя команда работает на открытом терминале gnome, но почему-то не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать на вашей системе, чтобы увидеть, как это влияет? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Цените ваши отзывы. Способ приостановки отличается на многих машинах, некоторые из которых используют, sudo pm-suspend
а некоторые используют systemctl suspend
команду.
Мы можем использовать сценарий на основе systemd, если мы используем systemctl suspend
для сна ОС (не использовать sudo pm-suspend
. Но в некоторых системах, когда вы нажимаете на приостановить ботон, команда использования операционной системы pm-suspend
). Но сценарии на основе systemd и сценарии на основе управления питанием имеют небольшую разницу между собой:
В сценарии на основе systemd мы не можем запускать приложения с графическим интерфейсом, потому что в этом состоянии нет X-сервера для подключения к нему.
Таким образом, вы не можете использовать gnome-terminal
в таких командах, как gnome-terminal --command 'compiz --replace &'
. если вы хотите показать gnome-терминал, вы должны использовать сценарии, основанные на powermanagement.
Но в вашем случае достаточно использовать этот скрипт (без gnome-терминала):
#!/bin/sh
if [ $1 = post ] ; then
compiz --replace &
fi
И вы можете проверить свой скрипт, заменив что-то вроде touch /home/YOURUSERNAME/Desktop/test.txt
вместо compiz --replace &
:
#!/bin/sh
if [ $1 = post ] ; then
touch /home/YOURUSERNAME/Desktop/test.txt
fi
(Имейте в виду, что поскольку в сценариях на основе systemd пользователь root запускает команды, поэтому не используйте его ~/Desktop
вместо того, /home/YOURUSERNAME/Desktop
потому что пользователь root ~ не является вашим домашним каталогом!)