Portál AbcLinuxu, 5. listopadu 2025 13:06
chápu-li správně, že tou nečinností máte na mysli nějakou pauzu ve vstupu z klávesnice a myši, pak stačí sledovat stav příslušných eventů
Dobře, pokud to nechcete řešit vlastním programem, třeba sledováním /dev/input/mice, tak použijte třeba starý dobrý xscreensaver. Za prvé by se dalo použít přepínače -wait (xscreensaver-command -wait) a sledováním jeho výstupu, nebo rovnou plácnout příslušný prográmek se shutdownem do /usr/libexec/xscreensaver/
poslední možnost jsem právě prakticky vyzkoušel (napsal jsem skriptík, který mi při aktivaci pošle mejl: /usr/libexec/xscreensaver/myscript, a pak jsem ho přidal do ~/.xscreensaver), funguje to dobře, dle očekávání.
Proč očekáváte tuhle funkci v cronu? Co se týče ostatních vámi uvedených programů nevím, dle jména je to něco pro KDE, neznám, KDE se obloukem vyhýbám.
skusil som nekonecny cyklus a naozaj stupaju cisla po sekunde od "0",
ked pohnem mysou alebo stlacim kl., tak sa zacne stupat znova od "0"
ok, teraz este v sheli vyhrabat otazku s timeoutom a bude to super
#! /bin/sh
while [ true ]
do
./scrinfo.py
done
Zeptá se Tě zda-li chceš vypnout PC a pokud neodpovíš do 10s, tak zavolá shutdown:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
class App:
def __init__(self, win):
self.win = win
self.win.wm_title("Query")
self.win.resizable(0, 0)
self.query_LB = Label(self.win, text="Mozem vypnut pc?")
self.query_LB.grid(row=0, column=0, columnspan=2, sticky=S, padx=10, pady=10)
self.yes_BT = Button(self.win, text="Ano", command=self.shutdown)
self.yes_BT.grid(row=1, column=0, sticky=S, padx=10, pady=10)
self.no_BT = Button(self.win, text="Nie", command=self.win.destroy)
self.no_BT.grid(row=1, column=1, sticky=S, padx=10, pady=10)
def shutdown(self):
print "Shutdown"
os.system("sudo /sbin/shutdown")
self.win.destroy()
def main():
win = Tk()
app = App(win)
win.after(10000, app.shutdown)
win.mainloop()
if __name__ == '__main__':
main()
Případně řešení s použitím kdialog:
#!/bin/bash
kill_children() {
for child_pid in $(ps -o pid= --ppid $1); do
kill_children $child_pid
kill $child_pid
done
}
kdialog --yesno "Mozem vypnut pc" &
KDIALOG_PID=$!
sleep 10 && kill $KDIALOG_PID &
wait $KDIALOG_PID
RESULT=$?
if [ $RESULT -eq 0 ] || [ $RESULT -eq 143 ]; then
echo "shutdown"
else
echo "pass"
fi
kill_children $$
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.