[solved] Bash Autoshutdown po zamknięciu określonego procesu.

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
lenonek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 195
Rejestracja: 12 lut 2007, 21:49
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

[solved] Bash Autoshutdown po zamknięciu określonego procesu.

Post autor: lenonek »

Witam,
potrzebuję, aby system wyłączał się po zakończeniu konkretnego procesu (dokładnie virtualbox). Po różnych lekturach stworzyłem mały skrypt:

Kod: Zaznacz cały

#!/bin/bash
while [ ! -n "`pidof -s VirtualBox`" ]
do
shutdown -h +00
done
lecz nie za bardzo wiem, co dopisać by skrypt ten sprawdzał cały czas lub co 5 sekund czy VirtualBox jest uruchomiony. Jeśli zostanie zamknięty, to aby wykonał komendę zamykającą system. Celem jest, że VirtualBox będzie startował wraz z systemem uruchamiając w nim wirtualną maszynę w opcji pełnoekranowej. Potrzebują by po zamknięciu wirtualnego systemu zamknął się także ubuntu - gospodarz.

Dodam, że użyłem polecenia

Kod: Zaznacz cały

sudo chmod u+s /sbin/shutdown
aby nie trzeba było wklepywać hasła do zamykania.

będę wdzięczny za sugestie
Pytam, gdyż nie znalazłem, nie wiem lub nie potrafię... czy to przestępstwo???
Awatar użytkownika
woseba
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 lis 2008, 11:17
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Bash Autoshutdown po zamknięciu określonego procesu.

Post autor: woseba »

wrzuć odpowiednią komendę do crona :]
Registered Ubuntu User # 31195
You are registered Linux user number 527911
ubuntu-pomoc.org
Awatar użytkownika
lenonek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 195
Rejestracja: 12 lut 2007, 21:49
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Odp: Bash Autoshutdown po zamknięciu określonego procesu.

Post autor: lenonek »

Tak :)
ale pierwszy uruchomi się cron, podczas gdy skrypt uruchamiający wirtualną maszynę (dodany do programów startowych) jeszcze się nie odpali. A skoro nie będzie procesu virtualbox to odpalony w cronie skrypt wyłączy komputer :(
Chyba że można ustawiać kolejność uruchamianych zadań w cronie lub wcześniej uruchomić skrypt z VirtualBoxem?
Pytam, gdyż nie znalazłem, nie wiem lub nie potrafię... czy to przestępstwo???
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Odp: Bash Autoshutdown po zamknięciu określonego procesu.

Post autor: Dwimenor »

Ja bym to zrobil tak:

Kod: Zaznacz cały

#!/bin/bash
sleep 120
while true; do
if [ `pidof -s VirtualBox` =="" ]; then
shutdown -h +00
fi
sleep 5
done
Dwie minuty to chyba wystarczający czas, żeby się virtualbox odpalił?
Ale chyba lepszym rozwiązaniem jest po prostu dodanie go do skryptów startowych po virtualboksie, niż zabawa z cronem.
I upewnij się, ze proces na pewno się nazywa "VirtualBox". Wielkość liter ma znaczenie.
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
Awatar użytkownika
lenonek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 195
Rejestracja: 12 lut 2007, 21:49
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Odp: Bash Autoshutdown po zamknięciu określonego procesu.

Post autor: lenonek »

Dwimenor wprawdzie dosłownie 5 minut przed Twoim postem poradziłem sobie z tym problemem (trochę na około), to przyznaję, że Twój kod jest zgrabniejszy :grin: i ogranicza się do jednego skryptu. Oczywiście działa bez zarzutu.

Dla zasady dodam, że ja rozwiązałem to w następujący sposób:
Stworzyłem plik o nazwie run_shutdown.check.sh który wykonywał co 10 sekund skrypt podany powyżej.

Kod: Zaznacz cały

i=0
  while [ $i -le 5000 ]; do
       i=$((i+1))
    ./autoshutdown.sh
    sleep 10s
  done
exit 0
kod zmodyfikowany z postu frklina

Dziękuję bardzo za wsparcie :)
Pytam, gdyż nie znalazłem, nie wiem lub nie potrafię... czy to przestępstwo???
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości