Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
[BASH] Zablokowanie wylaczenie komputera...
Autor Wiadomość
rryk Offline
Użytkownik

Liczba postów: 238
Dołączył: 14-06-2009
Reputacja: 1
Post: #1
[BASH] Zablokowanie wylaczenie komputera...
Jak zrobic aby pojedyncze wcisniecie przycisku POWER na obudowie nie wyłączyło linuxa..
Ps. i moze jeszcze ktoś wie jak zrobic aby read zczytywał także klawisze funkcyjne jak alt, shift, enter, tab etc. oprócz crtl...

http://counter.li.org/cgi-bin/certificate.cgi/471137
[Obrazek: apt3.png]
16.09.2011 15:40:39
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Kwpolska Offline
NIE MA MENU

Liczba postów: 301
Dołączył: 11-09-2010
Reputacja: 16
Post: #2
RE: [BASH] Zablokowanie wylaczenie komputera...
(a) pobawic sie z konfigiem ACPI; (b) nie da sie, trzeba innego jezyka

Debian(opodobne) i problemy z WiFi? Zajrzyj do wiki.
Jeśli ci pomogłem - polecam pacnąć w takiego pana trochę niżej: [Obrazek: postbit_reputation.gif]
16.09.2011 15:45:10
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
rryk Offline
Użytkownik

Liczba postów: 238
Dołączył: 14-06-2009
Reputacja: 1
Post: #3
RE: [BASH] Zablokowanie wylaczenie komputera...
1) Chyba znalazłem ale sprawdze to w domu: http://www.linuxforums.org/forum/hardwar...n-fc5.html

2) skoro nie da sie read'em ich zczytać to czy da sie je calkowicie wyłączyć?? Jak tak to w jaki sposób??

http://counter.li.org/cgi-bin/certificate.cgi/471137
[Obrazek: apt3.png]
16.09.2011 16:04:35
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Enlik Offline
„techniczny”
*******

Liczba postów: 1 043
Dołączył: 12-12-2008
Reputacja: 26
Post: #4
RE: [BASH] Zablokowanie wylaczenie komputera...
Są dwa pytania o dwie różne rzeczy. Tytuł jest o blokadzie wył. komputera, a dział - Programowanie.
Pytanie powinno być dopasowane do tytułu i działu. No i jeszcze jedno, pisze się jeden znak zapytania, nie „??”.

[Obrazek: zeDGS.png]
Please don't steal my focus!
| git
16.09.2011 16:30:35
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
andrzej3393 Offline
Użytkownik

Liczba postów: 27
Dołączył: 10-06-2009
Reputacja: 0
Post: #5
RE: [BASH] Zablokowanie wylaczenie komputera...
A może prostacko `chmod -x halt shutdown reboot` tudzież `chmod 700` na wymienione binarki? Smile

/home/andrzej3393
16.09.2011 16:45:02
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
dragonn Offline
Przyjaciel

Liczba postów: 709
Dołączył: 04-02-2009
Reputacja: 12
Post: #6
RE: [BASH] Zablokowanie wylaczenie komputera...
Nie, lepiej zajrzeć do /etc/acpi/handler.sh. Pokaż zawartość tego pliku. Ale nie polecam całkowicie wyłączać tego przycisku, bo często jest to ostatnia deska ratunku by prawidłowo zamknąć system, ja mam zrobiony taki bajer że system zamyka się po 6-krotnym naciśnięciu tego przycisku w odstępach max 2s. Jeżeli taki rozwiązanie by cię zainteresowało to pisz, chętnie udostępnię skrypt odpowiedzialny za to, ale najpierw pokaż zawartość tego pliku.

[Obrazek: archuserbar1hq2.png]
16.09.2011 17:06:56
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
rryk Offline
Użytkownik

Liczba postów: 238
Dołączył: 14-06-2009
Reputacja: 1
Post: #7
RE: [BASH] Zablokowanie wylaczenie komputera...
@Enlink: pytanie bylo jedno lecz dwuczlonowe bo główne założenie to blokowanie paru przyciskow, a ze calosc ma byc blokowana do czasu do poki pewien skrypt w bashu jest uruchomiony to tez pomyslalem o tym dziale.
@dragonn: bardzo ciekawy sposób - zaraz przeloguje sie na linuxa i sprawdzę co i jak. No i jeszcze nie martw się tak tym wyłączaniem ponieważ chodzi tutaj o zablokowanie wylaczenia komputera podczas używania Clonezilli po skończeniu Clonezilla sama zrestartuje komputer. Chodzi o to, że podczas przywracania klona odpalone jest tty2 ze specjalnym skryptem, ktory informuje, że komputer jest w tej chwili naprawiany i prosi o niedotykanie go przez ten czas, ponad to po wcisnieciu ktoregos z klawiszy, poza klawiszami funkcyjnymi wysyla do mnie sms'a o tym, że ktoś coś majstruje i wlacza alarm (zmiana wiadomosci, dzwieki z glosniczka systemowego etc.). Jedyne czego brakowało to zablokowanie przyciksu wylączenia i resetu . No i o ile resetu raczej nie da się rady zablokować to wiedziałem że z shutdown problemu dużego nie będzie.
@andrzej: to chyba nie poskutkuje, ale zaraz sprawdzę ;p


PS. Dragon w clonezilli nie ma nawet katalogu /etc/acpi
PS2. adnrzej3393 twoj sposob dziala(bynajmniej na CRTL+ALT+DEL zaraz sprawdze jak tam normalnie) jednak zamiast usuwac mu prawa wykonywania zamienie go z innym plikiem

http://counter.li.org/cgi-bin/certificate.cgi/471137
[Obrazek: apt3.png]
(Ten post był ostatnio modyfikowany: 16.09.2011 22:15:23 przez rryk.)
16.09.2011 21:53:14
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
dragonn Offline
Przyjaciel

Liczba postów: 709
Dołączył: 04-02-2009
Reputacja: 12
Post: #8
RE: [BASH] Zablokowanie wylaczenie komputera...
No cóż, clonezilla może nie mieć zainstalowano acpi bo po co? W tym przypadku lepszym rozwiązaniem będzie pomysł andrzej3393-a.

[Obrazek: archuserbar1hq2.png]
17.09.2011 10:29:07
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Lachu Offline
Użytkownik

Liczba postów: 41
Dołączył: 22-02-2010
Reputacja: 0
Post: #9
RE: [BASH] Zablokowanie wylaczenie komputera...
Co do sześciokrotnego kliknięcia:
W OpenSUSE wystarczy dodać nowy plik w /etc/acpid/ , a tam określić ścieżkę do nowego pliku w /usr/lib/acpid , który będzie za wszystko odpowiadać . Wklejam oba pliki :

/etc/acpid/force_PowerOff
Kod:
# care about shutting down system when power off is pressed six times

event=button/power.*
action=/usr/lib/acpid/force_PowerOff

/usr/lib/acpid/force_PowerOff
Kod:
#!/bin/bash

a=`cat /tmp/force_PowerOff`

if [ "$a" == "5" ]; then
   rm /tmp/force_PowerOff
   /sbin/halt
else
   echo $(( $a + 1 )) > /tmp/force_PowerOff
fi

Co do tematu, to należy wyedytować /etc/inittab(chyba, że twoja dystrybucja z dziwnych powodów nie ma tego pliku).
(połączono posty)

Kod:
a=`pidof clonezilla` # czy jakoś tak
if [ "$a" != "" ]; then
   wall "Nie zamkniesz systemu"
else
   /usr/lib/acpid/power_off
fi
Powyższe rozwiązanie bym proponował. Trzeba jeszcze pamiętać o usunięciu pliku /etc/acpid/power_off, a także zainstalowaniu pidof. Pidof wyświetla numer pid dla zadania o wskazanej nazwie.
(Ten post był ostatnio modyfikowany: 23.09.2011 10:13:00 przez Lachu.)
23.09.2011 09:08:20
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
dragonn Offline
Przyjaciel

Liczba postów: 709
Dołączył: 04-02-2009
Reputacja: 12
Post: #10
RE: [BASH] Zablokowanie wylaczenie komputera...
Twoje rozwiązanie ale ma jedną wadę, nie ma w nim ograniczenia czasowego miedzy kliknięciami, nie kasuje się ono po czasie, moje rozwiązanie jest bardziej rozbudowane:
Kod:
#!/bin/bash
linenumber=$(cat /tmp/poweroff 2> /dev/null | wc -l)
function check_line {
            lastline=$(cat /tmp/poweroff | tail -n1)
            linecheck=$(echo -n $lastline | awk '{print $1,$2, $3}')
            lineseconds=$(echo -n $lastline | awk '{print $4}')
            if [ "$linecheck" = "$(date +"%-j %-H %-M")" ]
                then
                    if test $lineseconds -le $(($(date +%_S)+2)) && test $lineseconds -ge $(($(date +%_S)-2))
                        then
                            if [ "$power" = "1" ]
                                then
                                    echo "$(date +"%-j %-H %-M %-S")" >> /tmp/poweroff
                                    poweroff
                            fi
                        else
                            echo -n "" > /tmp/poweroff
                    fi
                else
                    echo -n "" > /tmp/poweroff
            fi
}
if [ "$linenumber" != "5" ]
    then
        check_line
        echo "$(date +"%-j %-H %-M %-S")" >> /tmp/poweroff
    else
        power="1"
        check_line
fi
Tak skrypt podpinam w swoim systemie, w przypadku arch jest to w /etc/acpi/handler.sh.

[Obrazek: archuserbar1hq2.png]
23.09.2011 17:55:53
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [solved][BASH] aktualizowanie czasu co 10 min waldi11 2 398 19.11.2011 21:01:13
Ostatni post: waldi11
  Bash wyswietlanie nr lini w ktorym znajduje sie dany wyraz?? rryk 6 2 281 31.10.2011 12:56:18
Ostatni post: wrosiak
  [ROZWIĄZANE] [BASH] - dowolny - Kawałek stringa do zmiennej rewers79 2 685 15.06.2011 14:16:00
Ostatni post: rewers79
  BASH-sortowanie bąbelkowe Pitek016 2 846 20.04.2011 18:10:26
Ostatni post: Pitek016
  [ROZWIĄZANE] Idealna bramka... curl,wget,bash,python,perl,php rryk 21 5 551 06.04.2011 06:53:55
Ostatni post: rryk
  [ROZWIĄZANE] [bash]Dzielenie tekstu danym znakiem Freev 4 1 497 06.03.2011 21:52:36
Ostatni post: Freev
  [ROZWIĄZANE] [Bash][C#/Gambas] Wiele pytań. eloaders 7 1 454 23.01.2011 00:07:52
Ostatni post: eloaders
  BASH - zmiena w nazwie tablicy dragonn 5 1 101 22.01.2011 22:51:53
Ostatni post: Enlik
  [ROZWIĄZANE] [bash/perl/python//cokolwiek] Jak z tekstu wywalic wszystkie znaki nowej linii rryk 18 3 555 28.11.2010 19:13:41
Ostatni post: rryk
  [ROZWIĄZANE] [bash] Podświetlanie linijki z danym wyrazem... rryk 8 1 316 15.11.2010 01:05:51
Ostatni post: rryk

Skocz do:


Użytkownicy przeglądający ten wątek: 4 gości

Kontakt | Linux360.pl - forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS