Como executar o script antes do x server stop ou do gnome logout?

5

O Chrome exibe a mensagem "não fechar corretamente" todas as vezes no meu sistema Fedora 28. Desativar o recurso "Continuar executando aplicativos em segundo plano quando o Google Chrome está fechado".

Eu acho que o problema é meu script executado após a parada do servidor x ou o logout do gnome. É por isso que o chrome e outros aplicativos fecham incorretamente ainda.

O script funciona bem manualmente, no entanto, quero fazer isso automaticamente. Eu tentei três maneiras de conseguir isso.

Script Fechar todas as janelas:

#!/bin/sh
#wmctrl -l | while read -r line
#do
#    wmctrl -c 'echo "$line" | sed 's/.*  [0-9]* [fink168] //''
#done
WIN_IDs=$(wmctrl -l | awk '$3 != "N/A" {print $1}')
for i in $WIN_IDs; do wmctrl -ic "$i"; done

/etc/systemd/system/closeWindow.service :

[Unit]
Description=CloseWindows
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target kexec.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/fink168/bin/close-all-windows

[Install]
WantedBy=multi-user.target


systemctl status closeWindow.service
● closeWindow.service - CloseWindows
   Loaded: loaded (/etc/systemd/system/closeWindow.service; enabled; vendor preset: dis>
   Active: active (exited) since Sun 2018-07-29 12:17:58 CST; 1h 4min ago
  Process: 619 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 619 (code=exited, status=0/SUCCESS)

Jul 29 12:17:58 fink168 systemd[1]: Started CloseWindows.

/etc/gdm/PostSession/Default :

#!/bin/sh
echo " Closing selected windows programs gracefully"
#export DISPLAY=$DISPLAY
su - fink168 -c /home/fink168/bin/close-all-windows
#su fink168 -c pkill -o chrome

Também fiz links para rc6.d , rc0.d e rc5.d .

$ ls -alrt /etc/rc6.d/
total 8
    lrwxrwxrwx.  1 root root   17 Apr 25 14:34 K90network -> ../init.d/network
    lrwxrwxrwx.  1 root root   20 Apr 25 14:34 K50netconsole -> ../init.d/netconsole
    lrwxrwxrwx.  1 root root   17 Apr 25 14:39 K99livesys -> ../init.d/livesys
    lrwxrwxrwx.  1 root root   22 Apr 25 14:39 K01livesys-late -> ../init.d/livesys-late
    drwxr-xr-x. 10 root root 4096 Jul 18 19:39 ..
    lrwxrwxrwx.  1 root root   23 Jul 28 22:56 K99pkillChrome -> /etc/init.d/pkillChrome
    drwxr-xr-x.  2 root root 4096 Jul 28 22:56 .

pkillChrome script de inicialização:

$ cat /etc/init.d/pkillChrome
#!/bin/bash
#pkill -o chrome
#pkill -f chrome
su - fink168 -c /home/fink168/bin/close-all-windows

Nenhuma dessas abordagens funciona no meu Fedora 28. O que há de errado?

    
por Alexis Li 29.07.2018 / 07:25

1 resposta

1

tente usar o graphical target - isso pode corrigir isso.

    
por 30.07.2018 / 12:32