Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: Paweł w 2018-06-18, 14:56:07

Tytuł: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł w 2018-06-18, 14:56:07
Witam wszystkich.
Pomóżcie mi proszę napisać skrypt który ubije mi wszystkie procesy libreoffice a potem zresetuje samą usługę libre.

ps ax  | grep libre

  449 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/127-13/Desktop/szablony.odt
  536 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/127-13/Desktop/szablony.odt
  584 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/164-13/Desktop/szablony.odt
  797 ?        Sl     0:00 /opt/libreoffice3.6/program/oosplash --writer /home/24-13/Desktop/szablony.odt
  802 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/164-13/Desktop/szablony.odt
  882 ?        Sl     0:00 /opt/libreoffice3.6/program/oosplash --writer /home/24-13/Desktop/szablony.odt
  931 ?        Sl   697:29 /opt/libreoffice3.6/program/soffice.bin --writer /home/24-13/Desktop/szablony.odt
 1085 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/164-13/Desktop/szablony.odt
 1100 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/164-13/Desktop/szablony.odt
 1131 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/164-13/Desktop/szablony.odt
 1152 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/164-13/Desktop/szablony.odt
 1175 ?        Sl     0:01 /opt/libreoffice3.6/program/oosplash --writer /home/164-13/Desktop/szablony.odt

Pozdrawiam,
Paweł
Tytuł: Odp: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł Kraszewski w 2018-06-18, 17:30:57
O jakiej usłudze libre mowa? Bo jedyne usługopodobne, co mi się kojarzy z libreoffice, to ikona szybkiego startu z zasobnika - ale ona nie jest LO potrzebna do życia...
Tytuł: Odp: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł w 2018-06-19, 07:22:01
Mam serwer terminalowy na którym klienci korzystają masowo z libre.
Po jakimś czasie na kolejnych nowo zalogowanych terminalach libre nie chce się odpalić. Kiedyś miałem skrypt, który robił robotę ale, że dostęp do serwera ma kilka osób to skrypt wsiąkł :(

Pozdrawiam,
Paweł.
Tytuł: Odp: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł Kraszewski w 2018-06-19, 08:10:21
Raczej poszukałbym przyczyny, a nie leczył objawy amputacją. Przy próbie odpalenia LOO z konsoli - co się dzieje? Na co marudzi? Czy jest wyłączony i zablokowany OpenGL i OpenCL w konfiguracjach LOO? To słabo działa przez sieć. Czy są limity zasobów per-klient? Czy i jaka separacja klientów?

Jak jest - tylko nowe LOO nie startują, czy wszystkie naraz przestają działać? Bo jak tylko nowe nie startują, to ponury żniwiarz może bardzo rozczarować tych, którym LOO jeszcze działa i mają coś otwartego.
Tytuł: Odp: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł w 2018-06-20, 11:06:41
Jak już przestaje robić LO to tylko na danym terminalu. Reszta pracuje bez problemu i nie zdarzyło się tak aby coś komuś żniwiarz zabrał ;)

ps aux | grep -i office | awk {'print $2'} | xargs kill -9
będzie dobrze ? :)

Pozdrawiam,
Paweł.
Tytuł: Odp: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł Kraszewski w 2018-06-20, 12:11:44
Lepsze będzie

pkill -u$USER -f -KILL /opt/libreoffice3.6/program

Rozkładając na części:

* Parametr -u$USER ogranicza procesy tylko do bieżącego użytkownika

* Parametr -f sprawia, że nazwa procesu dopasowywana jest do całej ścieżki a nie do "gołej" nazwy programu. To pozwala dopasować do dowolnego działającego programu w /opt/libreoffice3.6/program - czyli zarówno oosplash jak i soffice.bin

* Parametr -KILL to sygnał do wysłania

Pkill nigdy nie widzi samego siebie, w odróżnieniu od potoku ps | grep.
Tytuł: Odp: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł w 2018-06-27, 11:08:33
Czesć,
Czy zamiast -KILL nie powinno być -signal ?

Pozdrawiam,
Paweł.
Tytuł: Odp: Skrypt ubijający usługę
Wiadomość wysłana przez: Paweł Kraszewski w 2018-06-27, 11:41:19
Cytuj
Jak wszystko inne zawiedzie, przeczytaj instrukcję

-KILL jest równoważne --signal KILL co jest równoważne (w Linuksie) --signal 9 . Tak samo -HUP = --signal HUP czy -USR1 = --signal USR1