Не может работать systemd основывал сценарий после того, как след от приостанавливает. Почему?

Следующие шоу ответа, как запустить скрипт после пробуждения от, приостанавливают на основе systemd. Я судил их, но не мог заставить терминал гнома, казаться, выполнять команду.

#!/bin/sh
if [ "$1" == "post" ]; then
  gnome-terminal --command 'compiz --replace &' 

Почему они не работали? Я использую 4.8.0-45-универсальное ядро Ubuntu 16.04.2. Мне любопытно, почему мой systemd базировался, сценарий не работал. Мои работы команды над открытым терминалом гнома, но так или иначе не будут работать с systemd-suspend.service методом.???

0
задан 13 April 2017 в 05:23

1 ответ

Поскольку Вы знаете, что любые эмуляторы терминала были закрыты после того, чтобы делать их работы.

Но если Вы хотите к терминалу гнома не быть закрытыми с помощью этого сценария в /etc/pm/sleep.d путь (эта причина сценария сохранить терминальным открытый, пока Вы не совершаете нападки, входят):

sudo nano /etc/pm/sleep.d/myscript

Затем вставьте их содержание Вам сценарий:

#!/bin/bash
case $1 in 
     thaw|resume) gnome-terminal --command 'bash -c "compiz --replace &; read line"'
     ;;
esac

Затем сделайте это executble этой командой:

sudo chmod a+x /etc/pm/sleep.d/myscript

Я надеюсь, что это - работа для Вас.

ОБНОВЛЕНИЕ:

Спасибо за совместное использование. Мне было любопытно, почему мой systemd базировался, сценарий не работал. Мои работы команды над открытым терминалом гнома, но так или иначе не будут работать с systemd-suspend.service решением. Вы могли примерить свою систему, чтобы видеть, что она имеет какой-либо эффект? Можно заменить команду compriz командой "сон 20" для попытки. Цените свою обратную связь, приостановить путь отличается на многих машинах, которые используют некоторые из них sudo pm-suspend и некоторые из них используют systemctl suspend команда.

Мы можем использовать базирующийся сценарий systemd, если мы используем systemctl suspend для сна ОС (для не использования sudo pm-suspend. но в некоторых системах, когда Вы нажимаете, приостанавливают boton, использование операционной системы pm-suspend команда). Но systemd основывал сценарии, и powermanagement базировался, сценарии имеют немного различия друг с другом:

В базирующемся сценарии systemd мы не можем запустить приложения GUI потому что в том условии нет никакого X-сервера для него для соединения с.

Таким образом, Вы не можете использовать gnome-terminal в таких командах как gnome-terminal --command 'compiz --replace &' . если Вы хотите показать терминал гнома, необходимо использовать базирующиеся сценарии powermanagement.

Но в Вашем случае достаточно использовать этот сценарий (без терминала гнома):

#!/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 не является Вашим корневым каталогом!)

0
ответ дан 3 November 2019 в 12:40

Другие вопросы по тегам:

Похожие вопросы: