Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Zjištění přihlášeného užvatele z daemona  (Přečteno 1531 krát)

Dogmeat

  • Návštěvník
  • Příspěvků: 26
Zjištění přihlášeného užvatele z daemona
« kdy: 05 Října 2009, 12:45:46 »
Zdravím,

rád bych se zeptal, jestli zde někdo netuší, jakým způsobem zjistit z běžícího daemona (v c++), zda je na daném pc (ideláně s libovolnou distribucí) někdo přihlášený (ať už lokálně nebo vzdáleně).
Stačí bohatě i link na nějaký nápad  :)

Předem díky za pomoc.

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: Zjištění přihlášeného užvatele z daemona
« Odpověď #1 kdy: 05 Října 2009, 15:29:00 »
Hmm, tak já nechci dělat hloupého, ale když už se ti spustí daemon, tak asi někdo přihlášený být musí, ne? :)
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Dogmeat

  • Návštěvník
  • Příspěvků: 26
Re: Zjištění přihlášeného užvatele z daemona
« Odpověď #2 kdy: 05 Října 2009, 16:15:14 »
Já mám za to, že daemon běží i pokud není nikdo přihlášený na přihlašovací obrazovce, s čímž počítám při tvorbě mé aplikace  :)

A právě z toho důvodu hledám nějaký způsob, jak zjistit, zda je nějaký uživatel přihlášený či zda je systém na logon obrazovce.

Martin Kiklhorn

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Závislák
  • ******
  • Příspěvků: 4807
  • グーグル!ご存知ですか?
    • HEJ
Re: Zjištění přihlášeného užvatele z daemona
« Odpověď #3 kdy: 05 Října 2009, 16:34:43 »
Jsou ve vašem dotazu OPRAVDU VŠECHNY vám dostupné informace o problému?
Linux user since 2007-10-11, Registered #456007
Virtual
| Distribuce
~/slozka znamená /home/"vase jmeno"/slozka
6521 69DE 0F34 FCBC FB1D  DE76 360E 52B2 F71A B8E8

Dogmeat

  • Návštěvník
  • Příspěvků: 26
Re: Zjištění přihlášeného užvatele z daemona
« Odpověď #4 kdy: 07 Října 2009, 21:47:01 »
Zkoumal jsem možnost použití "who" a vypadá to zajímavě a použitelně. Podařilo se mi úspěšně zavolat jej v normální aplikaci a poté vypsat přijatý výsledek do konzole. Narazil jsem ovšem na problém, jak dále zpracovat tento výsledek od:

int prom = system("who -u");
cout << prom;

V prom se totiž nalézá při vytištění na konzoli kompletní výsledek (a ne hodnota typu int, dojde k vytištění řetězce) a já potřebuji nějakým způsobem ověřit, co přesně vrátila a ne ji tisknout (například zda je NULL nebo zda je počet zjištěných uživatelů roven nule).
Pátral jsem po googlu a nepodařilo se mi narazit na nic, co by popisovalo návratové hodnoty od takto použitého who (nebo spíše system()) a jak je zpracovat.

Díky za každou radu.

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Zjištění přihlášeného užvatele z daemona
« Odpověď #5 kdy: 08 Října 2009, 11:16:41 »
A to je takový problém ten string v C++ zpracovat?

nettezzaumana

  • Host
Re: Zjištění přihlášeného užvatele z daemona
« Odpověď #6 kdy: 08 Října 2009, 13:40:16 »
man utmp ## u me utmp(5)
man utsname.h ## u me utsname.h(0p)

Dogmeat

  • Návštěvník
  • Příspěvků: 26
Re: Zjištění přihlášeného užvatele z daemona
« Odpověď #7 kdy: 14 Října 2009, 10:55:00 »
Nakonec vyřešeno za pomocí:

setutent();
getutent(); v cyklu
endutent();

 

Provoz zaštiťuje spolek OpenAlt.