Polskie forum 3dfx
3dfx >> Offtopic >> Moje linuxowe problemy
http://3dfx.pl/cgi-bin/yabb2/YaBB.pl?num=1508098436

Message started by Varus on 15. Oct 2017 at 22:13

Title: Moje linuxowe problemy
Post by Varus on 15. Oct 2017 at 22:13
Nie chciałem wątku zaśmiecać więc robię nowy.

Mam problem że skryptem w linuxie, a raczej wyświetleniem go. Mam dwa połowicznie rozwiązania, ale mnie nie zadowalają.

Chcąc mieć podgląd skryptu na ekranie, zaraz po uruchomieniu systemu (nie ma X-ów, Ubuntu) wrzuciłem go do odpalania do init.d i komendą ./skrypt.sh > /dev/tty1

Działa to fajnie, bez logowania, ale nie jestem w stanie zobaczyć tego, jak łączę się z zewnątrz, poprzez ssh.

I teraz kolejna myśl, dodałem tmuxa i uruchamiam skrypt w nim. Mogę go wywołać z ssh i widzę co się dzieje, ale na komputerze oczywiście po starcie mam ekran logowania. Muszę ręcznie się zalogować i wywołać tmuxa.

Jak pogodzić te dwie rzeczy?

Title: Re: Moje linuxowe problemy
Post by kazeobi on 15. Oct 2017 at 23:30
Może wypchnac to netcatem na jakiś port, a później zarówno w tmux jak i ibit.d to odczytywać?

Title: Re: Moje linuxowe problemy
Post by Varus on 15. Oct 2017 at 23:47
Init.d to tylko żeby ładowało skrypt przy starcie systemu z prawami roota. Nie potrzebne jest logowanie. Jak przez port chcesz to wepchnąć? Mnie chodzi tylko o to jak wywalić działający już skrypt, na ekran "widzialny".

Ręcznie jak się zalogujesz w konsoli i odpalisz skrypt, to go widzisz i tyle. Przy starcie jak on odpala się w powłoce to już go nie widać. Nawet po zalogowaniu nie umiem się do niego dostać. To częściowo ominąłem właśnie tmuxem. Odpalam w nim skrypt komendami.

Czyli przy starcie systemu odpalany jest tmux, potem wysyłana komenda z keysem na tą konsole:
./skrypt.sh > /dev/tty2
sleep 10
chvt 2

Włączam kompa i po 20 sekundach od razu widzę działający skrypt.

Jeśli chce coś pokombinować, to zmieniam pulpit i tu wiadomo... Login hasło itp. Potem komenda tmux attach, no I tu widzę, że jest odpalany skrypt i wysłany na tty2, bez tego co się dzieje.

Tu mi to nie przeszkadza. Ale dostając się na kompa poprzez ssh, co mogę zrobić? Wszystko i nic. Tmux attach wyświetla mi info, że skrypt jest odpalany na tty2, ale tam się już nie przełączę.

A jeśli przy starcie systemu w tmuxie odpalę skrypt bez wywalania go na tty2 to poprzez ssh go wywołam. Ale z komputera z linuxem już nie mam tego komfortu, że włączę kompa i po 20 sekundach widzę skrypt. Tylko już trzeba najpierw ręcznie się zalogować i odpalić tmuxa.

Title: Re: Moje linuxowe problemy
Post by Forsaken on 16. Oct 2017 at 00:26
Nie wiem czy dobrze rozumiem co chcesz uzyskać, ale może screen byłby pomocny   (You need to Login or Register

Title: Re: Moje linuxowe problemy
Post by Varus on 16. Oct 2017 at 07:14
Próbowałem też screena. Te same opcje daje mi tmux. Nie udało mi się tego zrobić ani jednym ani drugim.

Title: Re: Moje linuxowe problemy
Post by kazeobi on 16. Oct 2017 at 09:01
Faktycznie, ciezko zeby dwa netcaty sluchaly na jednym porcie...

a moze named pipes? (wycenzurowalem nieudane proby uzycia polecenia tee :) )
pipe_test.png ( 119 KB | 7 Downloads )

Title: Re: Moje linuxowe problemy
Post by Jenot on 16. Oct 2017 at 22:07
Nie wiem czy dobrze zrozumiałem, ale chodzi Ci o to, żeby po wykonaniu skryptu (nawet jeśli uruchamia się przy inicie) sprawdzić co wywalił na stdout i stderr? Jeśli tak, to może pomoże dodanie czegoś takiego na początku Twojego skrypt.sh:

Code (]exec 1> >(logger -s -t $(basename $0)) 2>&1[/code):

A potem po zalogowaniu przez ssh wystarczy [code]cat /var/log/syslog |grep skrypt.sh

Nie ma to wpływu na wyrzucanie stdout na ekran, czyli na swoim /dev/tty2 będziesz miał to samo co w syslogu, chociaż ja preferuję jednak używanie do tego tty, na których nie pojawia się login:

Albo jeszcze prościej: nohup skrypt.sh, tylko wtedy stdout nie jest wyświetlany na tty, wszystko idzie do nohup.out. Ale zawsze po zalogowaniu możesz zrobić tail -F nohup.out i widzisz na bieżąco co się dzieje.

Title: Re: Moje linuxowe problemy
Post by Varus on 17. Oct 2017 at 17:38
Chodzi o to, że po starcie systemu mam mieć działający skrypt widoczny na tty bez logowania.
I jak dostaje się na tą maszynę przez ssh to też chce widzieć co wyświetla ten skrypt. Nie mogę tych dwóch rzeczy pogodzić.

Albo mam skrypt uruchomiony na tty bez logowania i nie mogę go podejrzeć przez ssh, albo mogę go podejrzeć przez ssh, ale wtedy na maszynie muszę się zalogować i odpalić tmuxa żeby go widzieć.

Title: Re: Moje linuxowe problemy
Post by Jenot on 17. Oct 2017 at 18:00
No to OK. Dopisz tylko to co powyżej do skryptu. Skrypt uruchamiaj  tak jak uruchamiałeś z przekierowaniem na tty. Do .bash_profile dopisz coś w stylu:
[code]tail -f /var/log/syslog |grep --line-buffered skrypt.sh[/code]
Po zalogowaniu przez ssh będziesz mial na ekranie to co chcesz (o ile oczywiście masz uprawnienia do czytania pliku syslog).

Title: Re: Moje linuxowe problemy
Post by Varus on 17. Oct 2017 at 19:56
No właśnie, uprawnienia to nie problem. Ale wnioskuję, że to pozwoli mi czytać działający skrypt, wpisywany w logi. A ja muszę mieć wpływ też na ten skrypt. Czyli np wciskam z klawiatury klawisz i skrypt mi zareaguje.

Np coś takiego. Piszesz skrypt, który po uruchomieniu wyświetla Ci co 10min w nowej linijce aktualną godzinę. Dodatkowo, po naciśnięciu klawisza C z klawiatury, wyświetla Ci godzinę z momentu naciśnięcia klawisza.

I taki skrypt chce, żeby działał zaraz po starcie na tty1 bez logowania.

Jak zaloguje się na kompa z zewnątrz przez ssh, też chce wywołać ten działający skrypt i móc w niego ingerować, naciskaniem klawisza C.

To chyba dokładnie odwzorowuje to czego potrzebuje.

Title: Re: Moje linuxowe problemy
Post by Jenot on 18. Oct 2017 at 21:57
OK, jeśli to program interaktywny a nie zwykły skrypt, który tylko cośtam wywala na ekran to pozostaje screen. Robisz tak:
Na początku skryptu umieszczasz linię:

Code (]exec 1> >(logger -s -p mojskrypt.output -t $(basename $0)) 2>&1 [/code):


W rc.local, czy gdzie tam uruchamiasz skrypt wpisujesz:
[code]screen -dm /path/to/skrypt.sh


W konfigu rsyslog (pewnie  w /etc/rsyslog.d/50-default.conf) dodajesz linię:
[code]mojskrypt.*    /dev/tty12[/code]

Output ze skryptu masz pod Alt-F12, jak się zalogujesz przez ssh to screen -r i pracujesz ze skryptem, jedyna wada to to, że na tty12 nie masz interakcji ze skryptem (musisz się lokalnie zalogować i zrobić screen -r), ale to dla mnie akurat byłaby zaleta - raczej nie chcę, żeby mi ktoś wyszedł ze skryptu uruchomionego na roocie do shella. ;)

Title: Re: Moje linuxowe problemy
Post by Varus on 18. Oct 2017 at 22:02
Brzmi sensownie. Spróbuję jeszcze dodatkowo odpalać to wszystko przez tmuxa. Wtedy co prawda tak samo z lokalnego nie będę mieć interakcji z skryptem, ale odpalając tmuxa będę mógł w nim wydawać komendy np na tty1 a rezultaty oglądać na tty2.

Sprawdzę to w weekend i dam znać czy działa.

Nie jestem zaawansowanym użytkownikiem linuxa, wydaje mi się, że nie do końca to zrozumiałem :D

mojskrypt.output vs skrypt.sh vs mojskrypt.* ?


PS.
bawiłem się też trochę ze screenem, ale na to nie wpadłem ;-)
Dzięki, mam nadzieję, że zadziała

Title: Re: Moje linuxowe problemy
Post by WhitemanFX on 21. Oct 2017 at 23:57
"
można dodać do tego jak się loguje, żeby wrzucało output skryptu do motd (message of the day)
wtedy będzie miał wynik skryptu po zalogowaniu po ssh
on chce czy nie chce się logować

"

Taka rada od kumpla na szybko. Nie wiem czy dobrze zrozumiał porblem.

Title: Re: Moje linuxowe problemy
Post by WhitemanFX on 22. Oct 2017 at 00:01
"

to ja bym dał coś takiego ./skrypt.sh > /etc/motd do .bashrc
czyli loguje się
a to przy jego logowaniu wrzuca output komendy do ekranu powitalnego
pytanie czy wcześniej się zaloguje
czy będzie ekran powitalny :D


"

Title: Re: Moje linuxowe problemy
Post by Varus on 15. Nov 2017 at 17:59

WhitemanFX wrote on 22. Oct 2017 at 00:01:
"

to ja bym dał coś takiego ./skrypt.sh > /etc/motd do .bashrc
czyli loguje się
a to przy jego logowaniu wrzuca output komendy do ekranu powitalnego
pytanie czy wcześniej się zaloguje
czy będzie ekran powitalny :D


"


To chyba nawiązanie do trybu graficznego. W konsoli też jest ekran powitalny?

Title: Re: Moje linuxowe problemy
Post by WhitemanFX on 15. Nov 2017 at 18:02
Tak w konsoli.

Title: Re: Moje linuxowe problemy
Post by Jenot on 15. Nov 2017 at 18:11
/etc/motd to plik, w którym jest tekst wyświetlający się po każdym logowaniu, każdego użytkownika.

Title: Re: Moje linuxowe problemy
Post by Varus on 15. Nov 2017 at 19:28

Jenot wrote on 15. Nov 2017 at 18:11:
/etc/motd to plik, w którym jest tekst wyświetlający się po każdym logowaniu, każdego użytkownika.

Czyli ta opcja odpada bo to ma być bez logowania.

Polskie forum 3dfx » Powered by YaBB 2.6.1!
YaBB Forum Software © 2000-2024. All Rights Reserved.