Jak wydobć output z procesu dla którego mam PID

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
detmold
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 16 sty 2010, 18:20
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Jak wydobć output z procesu dla którego mam PID

Post autor: detmold »

Sytuacja wygląda tak:
1. Uruchamiam skrypt ze startem Ubuntu, który dynamicznie zaczytuje parametr z pliku [OK]
2. Skrypt ten zapisuje swój PID do pliku [OK]
3. Skrypt ten wywołuje plik bin, który wykonuje się cały czas, kiedy system działa [OK]
4. Przy zamykaniu systemu potrzebuje zakończyć skrypt, odczytać jego output i zapisać do pliku [PROBLEM]

W ogóle to zrobiłem 2 skrypty - ale może da się to zrobić inaczej i nie potrzebnie kombinuje:
1. script.sh - startuje podczas uruchamiania systemu

Kod: Zaznacz cały

#!/bin/bash
   re='^[0-9]+$'
   cd /home/piotr/hashcat-0.47/
	echo $$ > /home/piotr/hashcat-0.47/pid.txt # zapisujemy id TEGO procesu do pliku
	param=$(cat /home/piotr/hashcat-0.47/file.txt) # pobieramy dynamiczny parametr z pliku, jeśli pusty lub nie jest liczbą to dajemy domyślną wartość
	if [[ -z "$param" || ! "$param" =~ $re ]]; then
		param=400000
		echo $param > /home/piotr/hashcat-0.47/file.txt
	fi
        # to poniżej wykonuje się cały czas ale przy zamykaniu systemu muszę jak gdyby przechwycić akcję na tym procesie i wykonać operację zapisu outputu do pliku files.
   ./hashcat-cli32.bin -m 400 -a 3 --pw-min=12 --pw-max=12 -o rockyou.txt --remove hashfile.all -s $param ?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d?l?u?d 
2. finish.sh - skrypt odpalający się przy zamykaniu systemu

Kod: Zaznacz cały

#!/bin/bash
# odczytuje pid procesu
param=$(cat /home/piotr/hashcat-0.47/pid.txt)
re='^[0-9]+$'

cd /home/piotr/hashcat-0.47/

# jesli pid byl pusty lub nie byl liczba to exit
if [[ -z "$param" || ! "$param" =~ $re ]]; then
	exit
fi

# i co teraz zrobić aby wypisać output z procesu dla którego mam PID i zapisać go do pliku ?
norvoles
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1113
Rejestracja: 04 sty 2008, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: Jak wydobć output z procesu dla którego mam PID

Post autor: norvoles »

Dlaczego po prostu nie przekierujesz tego co wypluwa skrypt od razu do pliku?

Kod: Zaznacz cały

script.sh > plik.txt
ODPOWIEDZ

Wróć do „Instalacja, aktualizacja i konfiguracja Ubuntu”

Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot] i 6 gości