Desligar o comp quando fechar o programa

Iniciado por marcelogualda, 22 de Dezembro de 2017, 15:22

tópico anterior - próximo tópico

marcelogualda

Boa tarde pessoal, nou novo no mundo linux mas estou me aventurando, tenho uma grafica rapida (algo parecido com uma lan house) onde tenho 10 micros em rede ... estou migrando tudo para linux ... estou colocando o zorinOs q eh mais semelhante ao windows e os clientes nem vao notar a diferença. meu maior problema esta no software q controla as maquinas, sei que existe varios para linux como o lanbr, openlan e tal mas utilizo a muito tempo o kairus para windows apenas. consegui instalar ele na maquina cliente pelo wine, adicionei ele na inicialização do sistema ... consigo fazer ele conversaar com o server e no server adicionar tempo para o usuario, mas quando fecho o usuario no server era pra maquina cliente desligar. Tentei fazer um scripts para quando fechar o programa a maquina desligar mas nao consigo fazer dar certo.
estou usando isso

#!/bin/sh
PROGRAMA='kairus'

while [ TRUE ]
do

    if xlsclients | grep -v grep | grep $PROGRAMA > /dev/null
    then
        echo "$PROGRAMA está rodando"
    else
        echo "$PROGRAMA não está rodando"
        sudo reboot
    fi
    # colocamos o sleep para o processador ter tempo para realizar outras tarefas
    # você pode colocar o tempo que achar melhor (em segundos)
    sleep 2
done

swatquest

#1
kairus_exec=$(xlsclients | grep -i "kairus" | grep -vc "grep" )
if [[ "$kairus_exec" != 0 ]]; then
        echo "kairus está rodando"
    else
        echo "kairus não está rodando"
        sudo reboot
    fi

ou

no systemd tem o systemd-cgls que monitora os processos da sessão do sistema e do usuário
Para o sistema
systemd-cgls /system.slice

Para o usuário
systemd-cgls /user.slice

Para tudo
systemd-cgls


você pode tentar

kairus_exec=$( systemd-cgls /user.slice | grep -i "kairus" | grep -vc "grep" )
if [[ "$kairus_exec" != 0 ]]; then
        echo "kairus está rodando"
    else
        echo "kairus não está rodando"
        sudo reboot
    fi

marcelogualda

então o kairus-cliente esta rodando pelo wine .... ei tinha achado esse codigo q postei na net ... tinha feito o arquivo sh q estava na minha area de trabalho ai eu mandava executar e nada acontecia . ... esse seu codigo como tenho q fazer ?

swatquest

não sei como trabalha o wine
teste e veja se funciona

o systemd-cgls mostra todas os programas que estào rodando