Como detectar o estado de desligamento da máquina Linux usando Python

1

Abaixo está o código que recebi deste site para detectar currículos,

import dbus      # for dbus communication (obviously)
import gobject   # main loop
from dbus.mainloop.glib import DBusGMainLoop # 
integration into the main loop
def handle_resume_callback():
    print "System just resumed from hibernate or suspend"

DBusGMainLoop(set_as_default=True) # integrate into main loob
bus = dbus.SystemBus()             # connect to dbus system wide
bus.add_signal_receiver(           # defince the signal to listen to
    handle_resume_callback,            # name of callback 
function
    'Resuming',                        # singal name
    'org.freedesktop.UPower',          # interface
    'org.freedesktop.UPower'           # bus name
)

loop = gobject.MainLoop()          # define mainloop
loop.run()                         # run main loop

Alguém pode me ajudar, qual é o nome do sinal para detectar a condição de desligamento.

    
por Subbu 12.05.2018 / 11:15

1 resposta

0

Você pode adicionar isto para capturar sinais SIGTERM, SIGINT e SIGKILL.

import signal

signal.signal(signal.SIGINT, sigterm_handler)
signal.signal(signal.SIGTERM, sigterm_handler)
signal.signal(signal.SIGKILL, sigterm_handler)

Você precisa do SIGTERM para desligar. Lembre-se: pressionar os botões significa que o sistema iniciará um desligamento, portanto, há uma quantidade limitada de tempo antes que qualquer coisa que você queira fazer seja feita.

    
por Rinzwind 12.05.2018 / 11:25