giełda, akcje, inwestycje
 ° Forum ° Odpowiedz ° Rejestracja ° Szukaj °
Numizmatyka - monety ° Internetowa Auto giełda °

wykrywanie aktywnej konsoli

Forum / Linux / wykrywanie aktywnej konsoli
Autor Wiadomość
Mariusz Jedwabny

Posted: 6 Gru 2006 05:47:01



Witam

Prosty program w c śmiga sobie w tle, jak to demon, przypuśćmy że
pewnego dnia loguję się na maszynie i wysyłam mu SIGKILL.
Obsługa sygnału w programie wyświetla na ekran "bye bye" i wykonuje
exit(). Jednak "bye bye" wysyłane jest na konsole z której daemon
został uruchomiony czyli de facto nie pojawi się na ekranie. Szukam
sposobu jak w jednoznaczny sposób określić które /dev/tty jest tym
aktywnym by tak przekierować komunikat.

Byłbym wdzięczny za wszelkie sugestie.

Pozdrawiam
Mariusz J.




ethanak

Posted: 6 Gru 2006 07:01:03



[...]

Szukam
sposobu jak w jednoznaczny sposób określić które /dev/tty jest tym
aktywnym by tak przekierować komunikat.

/dev/console pasuje?

ethanak



Kamil Jońca

Posted: 6 Gru 2006 14:49:55



Witam

Prosty program w c śmiga sobie w tle, jak to demon, przypuśćmy że
pewnego dnia loguję się na maszynie i wysyłam mu SIGKILL.
Obsługa sygnału w programie wyświetla na ekran "bye bye" i wykonuje
exit(). Jednak "bye bye" wysyłane jest na konsole z której daemon
został uruchomiony czyli de facto nie pojawi się na ekranie. Szukam
sposobu jak w jednoznaczny sposób określić które /dev/tty jest tym
aktywnym by tak przekierować komunikat.
#define aktywny

Jeśli jesteś zdalnie zalogowany na 2 terminalach to na który ma pójść
info ?

KJ




pisz na.mirek

Posted: 6 Gru 2006 22:11:24



Witam

Prosty program w c śmiga sobie w tle, jak to demon, przypuśćmy że
pewnego dnia loguję się na maszynie i wysyłam mu SIGKILL.
Obsługa sygnału w programie wyświetla na ekran "bye bye" i wykonuje
exit(). Jednak "bye bye" wysyłane jest na konsole z której daemon
został uruchomiony czyli de facto nie pojawi się na ekranie. Szukam
sposobu jak w jednoznaczny sposób określić które /dev/tty jest tym
aktywnym by tak przekierować komunikat.

Byłbym wdzięczny za wszelkie sugestie.

Pogrzebać w kodzie wall?




Mariusz Jedwabny

Posted: 7 Gru 2006 05:58:24





#define aktywny

Jeśli jesteś zdalnie zalogowany na 2 terminalach to na który ma pójść
info ?


No i w tym cała kwintesencja problemu, na ten z którego wysłano SIGKILL.

Można to zrobić w ten sposób:
program wysyłajacy SIGKILL nim to zrobi tworzy plik w ktorym zapisuje
z ktorego terminala kozysta
program odbierajacy SIGKILL zna polozenie tego pliku czyta z niego i na
ten wlasnie terminal wysyla komunikat
ale to jest strasznie brzydkie rozwiazanie i szukam jakiegos magicznego
triku.

Aktualnie zaczytuje się w tematyke pliku /var/run/utmp a nuż się okaże
pomocny.

Mariusz J.




Kamil Jońca

Posted: 7 Gru 2006 06:40:42



Dnia Thu, 07 Dec 2006 06:58:24 +0100,
[...]
Można to zrobić w ten sposób:
program wysyłajacy SIGKILL nim to zrobi tworzy plik w ktorym zapisuje
z ktorego terminala kozysta
program odbierajacy SIGKILL zna polozenie tego pliku czyta z niego i na
ten wlasnie terminal wysyla komunikat
ale to jest strasznie brzydkie rozwiazanie i szukam jakiegos magicznego
triku.

Uwaga na marginesie: Jak wyślesz sigkill to, o ile wiem, nie dasz szansy
przeczytać programowi czegokolwiek.

A jesli chodzi o rozwiązanie to chyba nie bardzo da się lepiej tego
zrobić.
KJ




Mariusz Jedwabny

Posted: 7 Gru 2006 07:13:15




Dnia Thu, 07 Dec 2006 06:58:24 +0100,
[...]
Można to zrobić w ten sposób:
program wysyłajacy SIGKILL nim to zrobi tworzy plik w ktorym zapisuje
z ktorego terminala kozysta
program odbierajacy SIGKILL zna polozenie tego pliku czyta z niego i na
ten wlasnie terminal wysyla komunikat
ale to jest strasznie brzydkie rozwiazanie i szukam jakiegos magicznego
triku.

Uwaga na marginesie: Jak wyślesz sigkill to, o ile wiem, nie dasz szansy
przeczytać programowi czegokolwiek.

A jesli chodzi o rozwiązanie to chyba nie bardzo da się lepiej tego
zrobić.

Sorry cały czas miałem na myśli SIGTERM;)
Dzięki za pomoc.





Kamil Jońca

Posted: 7 Gru 2006 07:30:15



Dnia Thu, 07 Dec 2006 08:13:15 +0100,
[...]

A jesli chodzi o rozwiązanie to chyba nie bardzo da się lepiej tego
zrobić.

Sorry cały czas miałem na myśli SIGTERM;)
Dzięki za pomoc.

Inna sprawa, ze .... po co Ci to ?
Nie lepiej jeśli ten (jak rozumiem) demon sobie trzymał jakiś log i w
momencie otrzymania sygnału *tam* zapisywał owo ostatnie pożegnanie ?
Dlaczego tak Ci zależy, żeby to szło na konsolę ?
KJ





Mariusz Jedwabny

Posted: 7 Gru 2006 10:28:02




Dnia Thu, 07 Dec 2006 08:13:15 +0100,
[...]

A jesli chodzi o rozwiązanie to chyba nie bardzo da się lepiej tego
zrobić.

Sorry cały czas miałem na myśli SIGTERM;)
Dzięki za pomoc.

Inna sprawa, ze .... po co Ci to ?
Nie lepiej jeśli ten (jak rozumiem) demon sobie trzymał jakiś log i w
momencie otrzymania sygnału *tam* zapisywał owo ostatnie pożegnanie ?
Dlaczego tak Ci zależy, żeby to szło na konsolę ?
KJ

Wiadomo jak to jest jak się człowiek uprze, ja się uparłem by nie
wykonywać tu czytania/pisania do plików, nie zawsze musi być racjonalny
powód;)
Mariusz J.





Adam Wysocki

Posted: 7 Gru 2006 23:08:36




Prosty program w c śmiga sobie w tle, jak to demon, przypuśćmy że
pewnego dnia loguję się na maszynie i wysyłam mu SIGKILL.
Obsługa sygnału w programie wyświetla na ekran "bye bye" i wykonuje
exit().

W przypadku SIGKILL?

Szukam sposobu jak w jednoznaczny sposób określić które /dev/tty jest
tym aktywnym by tak przekierować komunikat.

Co to znaczy "aktywnym"?




Mariusz Jedwabny

Posted: 8 Gru 2006 05:13:53





Prosty program w c śmiga sobie w tle, jak to demon, przypuśćmy że
pewnego dnia loguję się na maszynie i wysyłam mu SIGKILL.
Obsługa sygnału w programie wyświetla na ekran "bye bye" i wykonuje
exit().

W przypadku SIGKILL?


Miałem na myśli SIGTERM.

Szukam sposobu jak w jednoznaczny sposób określić które /dev/tty jest
tym aktywnym by tak przekierować komunikat.

Co to znaczy "aktywnym"?

Ten tty lub pts z którego wysłano SIGTERM....
czyli ten który jest w danym momencie prawie napewno przez danego
zalogowanego klienta obserwowany w oczekiwaniu na wynik.





Adam Wysocki

Posted: 8 Gru 2006 07:12:45




Szukam sposobu jak w jednoznaczny sposób określić które /dev/tty jest
tym aktywnym by tak przekierować komunikat.

Co to znaczy "aktywnym"?

Ten tty lub pts z którego wysłano SIGTERM....
czyli ten który jest w danym momencie prawie napewno przez danego
zalogowanego klienta obserwowany w oczekiwaniu na wynik.

To nie działa w ten sposób. Proces nie dostaje pida procesu, który go
ubija (mając pida możesz sprawdzić terminal). Tak jak ktoś już napisał,
zamiast (albo oprócz) wysyłania TERMa możesz zrobić coś innego.




Mariusz Jedwabny

Posted: 8 Gru 2006 09:00:34





Szukam sposobu jak w jednoznaczny sposób określić które /dev/tty jest
tym aktywnym by tak przekierować komunikat.

Co to znaczy "aktywnym"?

Ten tty lub pts z którego wysłano SIGTERM....
czyli ten który jest w danym momencie prawie napewno przez danego
zalogowanego klienta obserwowany w oczekiwaniu na wynik.

To nie działa w ten sposób. Proces nie dostaje pida procesu, który go
ubija (mając pida możesz sprawdzić terminal). Tak jak ktoś już napisał,
zamiast (albo oprócz) wysyłania TERMa możesz zrobić coś innego.

No właśnie ja dobrze o tym wiem że nie można bezpośrednio odczytać tych
danych więc szukałem jakiegoś triku...i to bardziej z ciekawości niż
faktycznej potrzeby.
Tak jak napisałem wcześniej zrobiłem to po prostu na plikach i działa
tak jak tego oczekuje.







Twoja wypowiedź

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Wyłącz BB code


Zanim wyślesz jakąś wiadomość z polskimi znakami, upewnij się czy kodowanie znaków w twojej przeglądarce to ISO-8859-2
 » Login  » Hasło 
 


Czas ładowania strony (sek.): 0.384 users

miniBB.net © 2001-2010 | Polityka Prywatności
e-giełdy + opisy gg + kumy fubi ° oko na maroko ° nimda °

Online: Odwiedzający - 1
+ - 0
Najwięcej odwiedzających: 68 [1 Sty 2010 19:23:09]
Odwiedzający - 68 / + - 0
zarabianie w internecie hourhands.com zaklady bukmacherskie ESET przewozy szczecin
  SErr:128 || SErr:128

  • Samsung szykuje tablet z systemem Android 3.5
  • Podczas prezentacji na targach IFA 2010, przedstawiciel Samsunga ujawnił, że producent już pracuje nad nowym, większym tabletem z preinstalowanym systemem Android 3.5 Honeycomb.
  • 8-rdzeniowy procesor Orochi, wytworzony w technologii 32 nm
  • AMD ujawnia pierwsze informacje na temat swojego nowego, 8-rdzeniowego procesora Orochi, który zostanie wytworzony w 32-nanometrowej technologii i oparty na architekturze Bulldozer.
  • Blueconnect Compressor przyspiesza wyświetlanie witryn
  • PTC uruchomiła dla wszystkich abonentów blueconnect w komputerze specjalną, darmową usługę pozwalającą na przyspieszenie wyświetlania stron internetowych oraz zmniejszenie liczby potrzebnych do tego danych.
  • 12-megapikselowy, stylowy kompakt z nagrywaniem filmów Full HD
  • Sony dodaje do swojej oferty nowy aparat kompaktowy HD Bloggie, który potrafi rejestrować filmy w jakości Full HD, wykonywać zdjęcia w rozdzielczości 12 Megapikseli i kręcić w trybie 360 Video.
  • Niedrogi smartfon z Androidem 2.2 na pokładzie
  • Firma Huawei wprowadza na rynek nowy smartfon z systemem operacyjnym Google Android 2.2, którego największą zaletą ma być - przystępna cena.