Občas se může hodit možnost rychle vypnout počítač. Zde jsou dva příklady, jak to udělat.
Klávesová zkratka
- V textovém editoru vytvoříme skript, který zavolá okamžité vypnutí počítače. Pro otestování prozatím zakomentujeme příkaz pro vypnutí a vložíme kód pro zapsání textu do souboru
killswitch.sh
:
#!/bin/bash
t=$(date);
echo $t > /home/ross/tools/killswitch/test;
#sudo poweroff -f
- Pomocí příkazu chmod nastavíme právo pro spuštění:
$ chmod +x ./killswitch.sh
- Zkontrolujeme práva:
$ ls -al
total 12
drwx------ 2 ross ross 4096 31. led 16.23 .
drwx------ 5 ross ross 4096 26. led 15.35 ..
-rwx------ 1 ross ross 100 31. led 16.17 killswitch.sh
- Nastavíme klávesovou zkratku, která zavolá náš skript. Toto se může lišit podle prostředí. Toto je příklad pro Gnome: Settings -> Keyboard Shortcuts -> + (úplně dole)
- Name: cokoliv
- Command: Cesta k našemu skriptu
- Shortcut: po kliknutí stiskněte požadovanou klávesovou zkratku
- Klikněte na “Add”
- Test: stiskněte vybranou klávesovou zkratku. Nově vytvořený soubor test by měl obsahovat aktuální čas. Pokud ne, něco je špatně:)
- Upravíme skript pro “ostrý provoz”:
#!/bin/bash
#t=$(date;echo $USER);
#echo $t > /home/ross/tools/killswitch/test;
sudo poweroff -f
- Pro zavolání příkazu
sudo poweroff -f
jsou potřeba administrátorská práva. To můžeme obejít vložením nasledujícího řádku do souboru/etc/sudoers
:
ross ALL = NOPASSWD: /sbin/poweroff
(poweroff -f
zabrání vyskakování potvrzovacích oken a vypne počítač okamžitě) - Uložíme rozdělanou práci a otestujeme klávesovou zkratku.
Vypnutí po odpojení USB zařízení
- Připojíme do USB portu zařízení, které chceme použít jako náš killswitch.
- Spustíme monitoring připojení zařízení:
$ udevadm monitor --property
- USB zařízení odpojíme z počítače, v terminalu by se měl zobrazit výpis podobný tomuto:
(...)
UDEV [18888.225725] remove /devices/pci0000:00/0000:00:14.0/usb1/1-2 (usb)
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/001/038
DEVTYPE=usb_device
PRODUCT=950/6535/110
TYPE=0/0/0
BUSNUM=001
(...)
- V textovém editoru vytvoříme pravidlo pro zařízení (jako root):
$ sudo vim /etc/udev/rules.d/85-my_killswitch_rule.rules
- Do souboru vložíme následující řádek:
ACTION=="remove", ENV{PRODUCT}=="950/6535/110", RUN+="/root/killswitch.sh"
(obsah proměnnéENV{PRODUCT}
zkopírujeme z výpisu příkazuudevadm monitor --property
) - Aktualizujeme pravidla (root):
$ sudo udevadm control --reload-rules
- Jako root vytvoříme v textovém editoru skript
/root/killswitch.sh
s tímto obsahem:
#!/bin/sh
t=$(date);
echo $t > /root/test
#shutdown now
(pozor, skript bude se spouštět pod uživatelem root! Pokud by se někdo dostal k tomuto skriptu, mohl by ho upravit a získat administrátorská práva. Proto musí být pro “běžného” uživatele nedostupný pro zápis.) - Přidáme atribut pro spuštění
# chmod +x /root/killswitch.sh
- Otestujeme.
- Ve skriptu odkomentujeme poslední řadek (vymazáním #).
- Připraveno k ostrému testu.