Pare um processo quando meu PC dorme

3

Eu gostaria de iniciar / interromper um processo antes que meu PC entre ou acorde.

Eu não sei como fazer isso.

O comando é:

Antes de dormir: killall libinput-debug-events
Após o despertar: libinput-gestures-setup start

    
por Shining 21.11.2016 / 13:47

1 resposta

3

Método 1 - usando um script dentro do diretório /lib/systemd/system-sleep

Crie um script em /lib/systemd/system-sleep com esta aparência:

#!/bin/sh

case / in
  pre/*)
    echo "Going to ..."
    killall libinput-debug-events
    ;;
  post/*)
    echo "Waking up from ..."
    # Place your post suspend (resume) commands here, or 'exit 0' if no post suspend action required
    sleep 2
    libinput-gestures-setup start
    ;;
esac

Para garantir que o script seja criado com as permissões corretas, copie e exista um script existente e edite-o:

cd /lib/systemd/system-sleep
sudo cp wpasupplicant tv_refresh
gksu gedit tv_refresh

A pausa sleep 2 pode ser desnecessária, mas para minha configuração foi necessário restaurar o som do laptop de volta para a TV HDMI.

As linhas echo são opcionais, mas são úteis porque aparecem em /var/log/syslog .

Método 2 - usando systemd services para root ou user

De: ( archlinux - Gerenciamento de energia ), obtemos instruções detalhadas para suspender e retomar o root poderes ou user de poderes.

Suspender / retomar arquivos de serviço

Arquivos de serviço podem ser ligados a suspend.target, hibernate.target e sleep.target para executar ações antes ou depois de suspender / hibernar. Arquivos separados devem ser criados para ações do usuário e ações raiz / sistema. Ative o suspend @ user e retome o @ user services para que eles sejam iniciados na inicialização. Exemplos:

Suspender

/etc/systemd/system/[email protected]
[Unit]
Description=User suspend actions
Before=sleep.target

[Service]
User=%I
Type=simple
Environment=DISPLAY=:0
ExecStartPre= -/usr/bin/pkill -u %u unison ; /usr/local/bin/music.sh stop ; /usr/bin/mysql -e 'slave stop'
ExecStart=/usr/bin/sflock
ExecStartPost=/usr/bin/sleep 1

[Install]
WantedBy=sleep.target

Retomar

/etc/systemd/system/[email protected]
[Unit]
Description=User resume actions
After=suspend.target

[Service]
User=%I
Type=simple
ExecStartPre=/usr/local/bin/ssh-connect.sh
ExecStart=/usr/bin/mysql -e 'slave start'

[Install]
WantedBy=suspend.target 
    
por WinEunuuchs2Unix 21.11.2016 / 13:53

Tags