Сохранитесь поля набора с в спящем режиме

Непосредственно от [1 120] руководство для systemd-suspend.service:

Immediately before entering system suspend and/or hibernation systemd-suspend.service (and the other mentioned units, respectively) will run all executables in /usr/lib/systemd/system-sleep/ and pass two arguments to them. The first argument will be "pre", the second either "suspend", "hibernate", or "hybrid-sleep" depending on the chosen action. Immediately after leaving system suspend and/or hibernation the same executables are run, but the first argument is now "post". All executables in this directory are executed in parallel, and execution of the action is not continued until all executables have finished.

я сделал некоторое тестирование и нашел, что при помещении сценария (отмеченный исполняемый файл всеми, которые можно быть достигнуто с chmod a+x) в [1 122] /lib/systemd/system-sleep , без/usr, оно будет выполняться, как упомянуто.

Однако , существует один недостаток, который является тем, что заставляет Вас думать, что он не работает: среда отличается. Графические команды не работают . Существует, вероятно, путь вокруг этого, но по умолчанию, unity --replace перестанет работать , потому что он не может соединиться с X-сервером (и так никакие команды, которые не работают, если Вы нажмете CTRL-ALT-F1 и войдете в фактическую консоль без вмешательства, то будет функционировать).

Хорошо, я просто приостановил свой ввод для проведения некоторого исследования: после рассмотрения основной chroot wiki (потому что у меня была та же проблема в chroots), я нашел это, если Вы вручную звоните xhost + прежде приостановка, графические команды (в моем случае zenity --info --text "1:$1 2:$1") функция правильно. Однако Вы не можете звонить xhost + из сценария. Что Вы можете делать быть, добавляет программа к "приложениям запуска" для автоматического вызова xhost +, когда Вы входите в систему (добавьте его там а не к .bashrc, потому что, если добавлено к [1 110] это будет работать каждый раз, когда Вы открываете эмулятор терминала). Это могло бы отличаться на Единице, но на ПОМОЩНИКЕ Ubuntu я могу перейти в [1 111] и нажать Add, чтобы сделать это.

Затем создайте файл /lib/systemd/system-sleep/restart-unity со следующим содержанием:

#!/bin/bash
export DISPLAY=:0
if [[ "$1" == "post" && "$2" == "suspend" ]]
then
    sleep 5
    unity --replace
fi

и выполненный sudo chmod a+x /lib/systemd/system-sleep/restart-unity (удостоверяются, файл принадлежит корню и только перезаписываемый корнем).

Примечание, что это должно использование bash. Это из-за "если" оператор. Когда я попробовал оператор вручную в [1 115], я получил различные ошибки от && часть.

Эти sleep там, потому что без него, unity --replace не соединится с X-сервером (или таким образом, это кажется).

На основе моих собственных тестов на Пикантном, это должно работать.

я просто провел 15 минут, пытаясь выяснить, почему это не работало только, чтобы понять, что я забыл export DISPLAY=:0 строка.

8
задан notnoop 1 September 2009 в 05:09
поделиться

3 ответа

Взгляните на Это . Может быть, это поможет.

Вы применили @CollectionOfElements следующим образом?

@org.hibernate.annotations.CollectionOfElements(
targetElement = java.lang.String.class

)

7
ответ дан 5 December 2019 в 21:20
поделиться

Иметь посмотрите Документацию по аннотациям Hibernate о коллекциях в основном вы должны указать списку, в каком отношении он находится.

@OneToMany(mappedBy="blog")
public List<String> getList() { return list; }

Тогда он должен работать.

0
ответ дан 5 December 2019 в 21:20
поделиться

Использование объекта Serializable , кажется, работает лучше. Изменение свойства list на ArrayList , похоже, решает проблему.

0
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

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