Следующий ответ показывает, как запустить сценарий после пробуждения из suspend на основе systemd. Я попробовал их, но не смог заставить gnome-terminal появиться для запуска команды.
#!/bin/sh
if [ "$1" == "post" ]; then
gnome-terminal --command 'compiz --replace &'
Почему они не работают? Я использую ядро Ubuntu 16.04.2 4.8.0-45-generic. Мне любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с методом systemd-suspend.service. ???
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с помощью этого скрипта на пути /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
Надеюсь, это будет работать для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы приостановки. Некоторые из них используют sudo pm-suspend, а некоторые из них используют команду systemctl suspend.Мы можем использовать сценарий на основе systemd, если мы используем systemctl suspend для сна ОС (не использовать sudo pm-suspend. но в некоторых системах, когда вы нажимаете на suspend boton, в операционной системе используется команда pm-suspend ). Но сценарии на основе systemd и скрипты на основе управления на основе Powermanagement имеют небольшую разницу между собой:
В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него нет X-сервера.
Поэтому вы не можете использовать gnome-terminal в таких командах, как gnome-terminal --command 'compiz --replace &'. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.
Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!)
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с помощью этого скрипта на пути /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
Надеюсь, это будет работать для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы приостановки. Некоторые из них используют sudo pm-suspend, а некоторые из них используют команду systemctl suspend.Мы можем использовать сценарий на основе systemd, если мы используем systemctl suspend для сна ОС (не использовать sudo pm-suspend. но в некоторых системах, когда вы нажимаете на suspend boton, в операционной системе используется команда pm-suspend ). Но сценарии на основе systemd и скрипты на основе управления на основе Powermanagement имеют небольшую разницу между собой:
В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него нет X-сервера.
Поэтому вы не можете использовать gnome-terminal в таких командах, как gnome-terminal --command 'compiz --replace &'. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.
Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!)
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с помощью этого скрипта на пути /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
Надеюсь, это будет работать для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы приостановки. Некоторые из них используют sudo pm-suspend, а некоторые из них используют команду systemctl suspend.Мы можем использовать сценарий на основе systemd, если мы используем systemctl suspend для сна ОС (не использовать sudo pm-suspend. но в некоторых системах, когда вы нажимаете на suspend boton, в операционной системе используется команда pm-suspend ). Но сценарии на основе systemd и скрипты на основе управления на основе Powermanagement имеют небольшую разницу между собой:
В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него нет X-сервера.
Поэтому вы не можете использовать gnome-terminal в таких командах, как gnome-terminal --command 'compiz --replace &'. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.
Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!)
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с помощью этого скрипта на пути /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
Надеюсь, это будет работать для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы приостановки. Некоторые из них используют sudo pm-suspend, а некоторые из них используют команду systemctl suspend.Мы можем использовать сценарий на основе systemd, если мы используем systemctl suspend для сна ОС (не использовать sudo pm-suspend. но в некоторых системах, когда вы нажимаете на suspend boton, в операционной системе используется команда pm-suspend ). Но сценарии на основе systemd и скрипты на основе управления на основе Powermanagement имеют небольшую разницу между собой:
В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него нет X-сервера.
Поэтому вы не можете использовать gnome-terminal в таких командах, как gnome-terminal --command 'compiz --replace &'. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.
Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!)
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с использованием этого скрипта на пути /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
Надеюсь, это сработает для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы использования некоторых из них используют
blockquote>sudo pm-suspend
, а некоторые из них используют командуsystemctl suspend
.Мы можем использовать сценарий на основе systemd, если мы используем
systemctl suspend
для сна ОС (не использоватьsudo pm-suspend
, но в некоторых системах, когда вы нажимаете кнопку suspend boton, операционная система использует командуpm-suspend
). Но скрипты на основе systemd и скрипты на основе управления с использованием Powermanagement имеют небольшую разницу между собой:В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него не существует X-сервера.
Поэтому вы не можете использовать
gnome-terminal
в таких командах, какgnome-terminal --command 'compiz --replace &'
. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!) [/ g12]
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с использованием этого скрипта на пути /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
Надеюсь, это сработает для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы использования некоторых из них используют
blockquote>sudo pm-suspend
, а некоторые из них используют командуsystemctl suspend
.Мы можем использовать сценарий на основе systemd, если мы используем
systemctl suspend
для сна ОС (не использоватьsudo pm-suspend
, но в некоторых системах, когда вы нажимаете кнопку suspend boton, операционная система использует командуpm-suspend
). Но скрипты на основе systemd и скрипты на основе управления с использованием Powermanagement имеют небольшую разницу между собой:В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него не существует X-сервера.
Поэтому вы не можете использовать
gnome-terminal
в таких командах, какgnome-terminal --command 'compiz --replace &'
. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!) [/ g12]
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с использованием этого скрипта на пути /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
Надеюсь, это сработает для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы использования некоторых из них используют
blockquote>sudo pm-suspend
, а некоторые из них используют командуsystemctl suspend
.Мы можем использовать сценарий на основе systemd, если мы используем
systemctl suspend
для сна ОС (не использоватьsudo pm-suspend
, но в некоторых системах, когда вы нажимаете кнопку suspend boton, операционная система использует командуpm-suspend
). Но скрипты на основе systemd и скрипты на основе управления с использованием Powermanagement имеют небольшую разницу между собой:В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него не существует X-сервера.
Поэтому вы не можете использовать
gnome-terminal
в таких командах, какgnome-terminal --command 'compiz --replace &'
. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!) [/ g12]
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с использованием этого скрипта на пути /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
Надеюсь, это сработает для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы использования некоторых из них используют
blockquote>sudo pm-suspend
, а некоторые из них используют командуsystemctl suspend
.Мы можем использовать сценарий на основе systemd, если мы используем
systemctl suspend
для сна ОС (не использоватьsudo pm-suspend
, но в некоторых системах, когда вы нажимаете кнопку suspend boton, операционная система использует командуpm-suspend
). Но скрипты на основе systemd и скрипты на основе управления с использованием Powermanagement имеют небольшую разницу между собой:В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него не существует X-сервера.
Поэтому вы не можете использовать
gnome-terminal
в таких командах, какgnome-terminal --command 'compiz --replace &'
. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!) [/ g12]
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с использованием этого скрипта на пути /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
Надеюсь, это сработает для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы использования некоторых из них используют
blockquote>sudo pm-suspend
, а некоторые из них используют командуsystemctl suspend
.Мы можем использовать сценарий на основе systemd, если мы используем
systemctl suspend
для сна ОС (не использоватьsudo pm-suspend
, но в некоторых системах, когда вы нажимаете кнопку suspend boton, операционная система использует командуpm-suspend
). Но скрипты на основе systemd и скрипты на основе управления с использованием Powermanagement имеют небольшую разницу между собой:В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него не существует X-сервера.
Поэтому вы не можете использовать
gnome-terminal
в таких командах, какgnome-terminal --command 'compiz --replace &'
. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!) [/ g12]
Как вы знаете, какие-либо терминальные эмуляторы были закрыты после выполнения своих заданий.
Но если вы хотите, чтобы gnome-terminal не закрывался с использованием этого скрипта на пути /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
Надеюсь, это сработает для вас.
UPDATE:
Спасибо за обмен. Мне было любопытно, почему мой сценарий на основе systemd не работал. Моя команда работает на открытом гном-терминале, но каким-то образом не будет работать с решением systemd-suspend.service. Не могли бы вы попробовать в своей системе увидеть, что это имеет какой-то эффект? Вы можете заменить команду compriz командой «sleep 20», чтобы попробовать. Оцените свою обратную связь. На многих машинах разные способы использования некоторых из них используют
blockquote>sudo pm-suspend
, а некоторые из них используют командуsystemctl suspend
.Мы можем использовать сценарий на основе systemd, если мы используем
systemctl suspend
для сна ОС (не использоватьsudo pm-suspend
, но в некоторых системах, когда вы нажимаете кнопку suspend boton, операционная система использует командуpm-suspend
). Но скрипты на основе systemd и скрипты на основе управления с использованием Powermanagement имеют небольшую разницу между собой:В сценарии на основе systemd мы не можем запускать приложения GUI, потому что в этом состоянии для него не существует X-сервера.
Поэтому вы не можете использовать
gnome-terminal
в таких командах, какgnome-terminal --command 'compiz --replace &'
. Если вы хотите показать gnome-terminal, вы должны использовать скрипты на основе powermanagement.Но в вашем случае достаточно использовать этот скрипт (без gnome-terminal):
#!/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 не является вашим домашним каталогом!) [/ g12]
compiz --replace&
решает мои проблемы с отображением только при выполнении с терминала. Следовательно, я использовал gnome-terminal
для выдачи команды. Возможно, вы захотите перепроверить. Отмечено на разницу между systemd и powermanagement. ;)
– Sun Bear
8 April 2017 в 09:11