removido
(usa Nenhuma)
Enviado em 23/05/2019 - 23:10h
Me ocorre o seguinte: você poderia criar um serviço do systemd. porém, andei olhando
e não sei se ele tem um alvo "logout.target", acho que só para reinicialização, suspensão
ou desligamento da máquina...
Log-out depende de como você entrou!
O que eu acho mais provável, é que seu gerenciador de sessões tenha condições de
executar um script quando um usuário fizer logout.
Veja, qual o gerenciador de sessões que você está utilizando no Q4OS?
Se fosse o lightdm, seria fácil:
Adicione a seguinte linha:
session-cleanup-script=/caminho/para/script
no arquivo /etc/lightdm/lightdm.conf e reinicie a máquina.
https://sobrelinux.info/questions/3456/execute-a-script-upon-logout-reboot-shutdown-in-ubuntu
https://askubuntu.com/questions/293312/execute-a-script-upon-logout-reboot-shutdown-in-ubuntu
--------------------------------------------------
Algum tempo depois...
--------------------------------------------------
Eu procurei aqui, e no Q4OS usa-se o SDDM para gerenciar sessões, e não achei
um jeito de ele rodar scripts..
Se você não quiser mudar de gerenciador de sessões para o lightdm que tem a funcionalidade
de rodar scripts, acho que a alternativa mais fácil é configurar um serviço do SYSTEMD para
rodar o script de limpeza tipo uma vez por dia ou a cada reboot/desligamento da máquina..
--------------------------
Crie um timer ( o timer controla o serviço do systemd que vc irá criar depois também!)
Vamos dar um nome para ele de "limpezaconvidado.timer"
O timer deve ficar em /etc/systemd/system/limpezaconvidado.timer
[Unit]
Description=Temporizador de Limpeza do Usuário Convidado
[Timer]
OnCalendar=*-*-* 05:00:00
Persistent=true
[Install]
WantedBy=timers.target
Aqui, eu configurei ele para rodar todo dia às 5h da manhã.
O systemd vai rodar o serviço assim que a máquina inicializar, caso
tenha perdido o último agendamento do timer..
Depois, crie um serviço do systemd que o timer irá ativar.
observe que o timer e o serviço devem ter o mesmo nome!!
Criar o serviço em:
/etc/systemd/system/limpezaconvidado.service
[Unit]
Description=Roda o Script de Limpeza do Usuário Convidado
[Service]
Type=oneshot
User=root
ExecStart=caminho/para/o/script/de/limpeza
Aqui no caso é bom executar como o raíz ( User=root ) ...
Depois de criados, é só habilitar e ativar o timer como raíz ou com sudo..
$ sudo systemctl enable limpezaconvidado.timer
$ sudo systemctl start limpezaconvidado.timer
Depois, você pode ver se ele está ativo com:
$ systemctl list-timers
Ou o seguinte comando para ver todos os timer, inclusive os inativos:
$ systemctl list-timers --all
Seria bom você colocar no seu script, um comando para matar a sessão do
convidado, antes de remover a pasta dele antiga e colocar uma nova...
Para ter certeza que ele nao está logado.... Mas enfim, isso é só ajuste daí.