Где разместить скрипты, которые запускаются при возобновлении работы компьютера?

8

Мне нужно заблокировать экран, когда мой компьютер просыпается от приостановки памяти,

Поэтому я попытался поместить следующий скрипт в /usr/lib/pm-utils/sleep.dи /etc/pm/sleep.d, но он так и не был выполнен,

#!/bin/sh

case "$1" in
    hibernate|suspend)
        ;;
    thaw|resume)
        vlock -ans
        ;;
    *) exit $NA
        ;;
esac

PS Это pm-suspendне так pm-hibernate.

РЕДАКТИРОВАТЬ

Пробовал и сервис systemd, не повезло

# /etc/systemd/system/resume@.service
[Unit]
Description=User resume actions
After=suspend.target

[Service]
User=root
Type=simple
ExecStart=vlock -ans

[Install]
WantedBy=suspend.target

И я systemctl enable resume@.serviceтоже звонил, vlock еще не звонили.

маргаритка
источник
3
Вы уверены, что это не будет выполнено? Можете ли вы попробовать просто войти или сделать что-то вродеecho executed script >> /tmp/resume
Ульрих Дангел

Ответы:

2

AFAIK ExecStartхочет полный путь к исполняемому файлу.

Попробуй с ExecStart=/usr/bin/vlock -ansтвоим/etc/systemd/system/resume@.service

lviggiani
источник
1

Вы установили права доступа и владельца, как описано в вики?

Убедитесь, что скрипт исполняемый (chmod 755) и принадлежит пользователю root: root

mibitzi
источник
1

Вы пытаетесь создать свой собственный хук, верно? Я читаю документацию по Arch Linux на pm-utils (ссылка ниже) и сначала проверю эти вещи:

  • Имя скрипта (начинаются с двух цифр, подчиняясь схеме в документации)
  • расположение скрипта: /etc/pm/sleep.d - правильное место
  • режимы сценария: chmod + x /etc/pm/sleep.d/66scriptname

Если вы уверены, что все правильно, то рассмотрите сам сценарий.

Вот ссылка на документы, которые я читаю по этому поводу: https://wiki.archlinux.org/index.php/pm-utils#Creating_your_own_hooks

Ваш сценарий совсем не похож на тот, который они показывают там. Вы вызываете / bin / sh вместо / bin / bash. Вы используете двойные квоты около 1 доллара, а они нет. Вы комбинируете варианты, а они нет. Все из которых должно быть в порядке, верно? За исключением, может быть, Ш против Бэша.

Как насчет того, чтобы поместить туда какие-нибудь операторы logger или echo для отладки, а затем проверить журналы, чтобы увидеть, начинается ли ваш сценарий. И если это так, то как далеко это продвинется.

Майк Дин
источник
Работает ли systemd с pm-utils? Я не уверен в этом ;-)
маргаритка
0

Я выяснил все каталоги, выполнив команду a "sudo strace pm-hibernate 2>/root/myfile.log", или вы можете заменить pm-hibernate на pm-suspend. Через некоторое время машина выключится. Затем, когда вы включаете / возобновляете снова, читаете файл myfile.log, и в нем находятся все скрипты, файлы конфигурации, файлы журналов, к которым обращаются / пишут.

Для моей Fedora 20 они:

/usr/lib64/pm-utils/pm-functions
/usr/lib64/pm-utils/defaults
/usr/lib64/pm-utils/module.d
/etc/pm/config.d
/etc/pm/pm-suspend.config.d
/var/run/pm-utils/locks/pm-suspsnd.lock
/var/run/pm-utils/pm-suspend/storage/parameters

и т. д. и несколько других каталогов.

Помогите себе с вашим конкретным дистрибутивом конкретной версии (кстати, Fedora 20 использует systemd).

Питер Теох
источник