Logowanie do pliku w tle - komenda screen i przekierowanie wyjścia w Linux

Opiszemy, w jaki sposób można dodać logowanie do pliku, gdy chcemy np. sprawdzić co robi jakiś proces lub system Android

Instalacja screen

Screen pozwala nam wykonać zadanie, które ma działać długo na zdalnej maszynie (nawet po zakończeniu/zerwaniu sesji SSH). Więcej o tym jakie ten program ma możliwości możemy poczytać tu:

Żeby zainstalować screen w konsoli wpisujemy komendę:

apt install screen

Nowa sesja w screen

Uruchamiamy nową nazwaną sesję w screen komendą:

screen -S sesja_logowanie

w nowej sesji przekierujmy logi Androida do pliku logi_logcat.txt w lokalizacji /sdcard

su -c "logcat >> /sdcard/logi_logcat.txt"

Odłączmy się od sesji screen

Ważne jest, żeby nie kończyć sesji screen, tylko odłączyć się od niej komendą klawiszy

Ctrl+a d

Sprawdzamy sesj screen

możemy wylistować sesje screen poleceniem

screen -ls

jeżeli mamy jakieś stare sesje screen tak jak poniżej:

$ screen -ls
There are screens on:
	3114.sesja_logowanie	(Dead ???)
	7076.sesja_logowanie	(Detached)
Remove dead screens with 'screen -wipe'.
2 Sockets in /data/data/pl.sviete.dom/files/home/.screen.

to możemy je wyczyścić komendą:

screen -wipe

i otrzymamy coś takiego:

$ screen -wipe
There are screens on:
	3114.sesja_logowanie	(Removed)
	7076.sesja_logowanie	(Detached)
1 socket wiped out.
1 Socket in /data/data/pl.sviete.dom/files/home/.screen.

sprawdzamy dla pewności:

$ screen -ls
There is a screen on:
	7076.sesja_logowanie	(Detached)
1 Socket in /data/data/pl.sviete.dom/files/home/.screen.

Sprawdzenie pliku z logiem

W innej sesji możemy podejrzeć plik z logiem:

tail -f /sdcard/logi_logcat.txt

Nie musimy mieć już aktywnego połączenia ssh, sesja screen będzie działała w tle, do momentu ponownego uruchomienia urządzenia.
Po ponownym uruchomieniu urządzenia wchodzimy na bramkę za pomocą np. ftp i przeglądamy plik loga:

image

Dawno juz nie uzywalem komendy screen, teraz zauwazylem ze przestala dzialac

$ screen
bash: /data/data/pl.sviete.dom/files/usr/bin/screen: Permission denied
$ sudo screen
/data/data/pl.sviete.dom/files/usr/bin/sudo: line 10: tput: command not found
/data/data/pl.sviete.dom/files/usr/bin/sudo: line 10: tput: command not found

Command screen not found
/data/data/pl.sviete.dom/files/usr/bin/sudo: line 10: tput: command not found
/data/data/pl.sviete.dom/files/usr/bin/sudo: line 10: tput: command not found
Check your spelling and try again

Podobny problem wystepuje w odniesieniu do mc (midnight commander), ktory instalowalem dawno temu.

Dobra, mea culpa. Przy wykonaniu resetu aplikacji instalowalem jeszcze raz screen oraz mc. I z rozpedu dalem sudo. Instalujac zewnetrzne aplikacje przy okazji apt lub apt-get na Jolce, nie nalezy dawac sudo.