ďťż

[PHP] Kombinatoryka Kontakt z powłoką systemu, wyświetlanie alertu

       

Podstrony


telcocafe

Zamierzam stworzyć wieloplatformowy program działający w konsoli (CLI) lub w tle - bez użycia serwera HTTP.

1. Jak pobrać tytuł uruchomionej aplikacji w systemie, znając nazwę procesu (np. AIMP2.exe)?
2. Jak długo jest domyślnie podtrzymywane połączenie z serwerem HTTP używając fsockopen()?
3. Jak wyświetlić komunikat, jeżeli skrypt PHP pracuje w tle? Chodzi o coś podobnego do alert() w JS.

W Win XP Pro jest polecenie wmic. Nie ma go jednak w Home. Inaczej odczytuje się dane w Linuksie - to już załatwią odpowiednie klasy lub funkcje. Szukam jednak uniwersalnego rozwiązania. Czy PHP oferuje jakieś mechanizmy do pobierania listy uruchomionych procesów i ich tytułów?

PS. Lepszy byłby kontakt z konkretną aplikacją. Jeśli to niemożliwe, chcę pobrać tekst wyświetlany na pasku tytułowym. Przykład: wiem, że proces nazywa się AIMP2.exe. Na tej podstawie pobieram tytuł (widoczny też po minimalizacji okna).
Użytkownik Ferrari edytował ten post 17 czerwiec 2009, 21:13


1. nie ma raczej wieloplatformowego gotowego rozwiązania. Trzeba raczej przeglądać API poszczególnych systemów. Z drugiej strony wiadomo co to "firefox.exe", czy "/usr/bin/ffmpeg", tym bardziej w PHP
2. Masz obsługę TCP, UDP, SSL i TLS, a połączenie jest otwarte do czasu zamknięcia, do timeout, czy do czasu uwalenia przez serwer (jego ustawienia). Nie myl tego z żądaniem HTTP.
3. Mac OS X - Growl, Linux - powiadomienia środowiska graficznego są w miarę ustandaryzowane w GNOME, KDE i pewnie w nowszym XFCE, kwestia odpowiednich bibliotek (w PyQt4 idzie to bez problemu)

Jeżeli chcesz stworzyć używalną aplikację w CLI to nie używaj PHP, bo to dość ogranicza możliwości, jaki chęć zastosowania takiego "skrypciku", który musiałby jechać w 99% na standardowo blokowanych funkcjach wykonujących polecenia systemowe / bash - bo jest to JEST język webowy. Plus pewnie wymuszać instalację różnych dodatkowych rozszerzeń z PECL (np. API dla libstatgrab), które dość często są w fazie alfa, albo porzucone.

Albo Perl (W CPAN znajdziesz spokojnie moduły od obsługi różnych połączeń sieciowych, pobierania danych systemowych itd.) albo Python - tutaj masz sporo różnych bibliotek, a w przypadku systemów uniksowych jeszcze więcej (dla przykładu iotop, pystatgrab, do tego Pythonowe API udostępnia praktycznie każda biblioteka i usługa systemowa), a jak chcesz zrobić aplikację GUI to wieloplatformową spokojnie zrobisz za pomocą PyQt4 (a jak chcesz listę procesów na szybko to PyKDE4 da ci nawet gotowy widżet :D (zrzut ekranu), który będzie (powinien) działał na obsługiwanych przez KDE4 platformach - Unix/Linux, Windows, OS X.)

Także sprecyzuj co chcesz robić, bo wielu doświadczonych administratorów popełniło wiele bardzo dobrych narzędzi ;)
Użytkownik Riklaunim edytował ten post 17 czerwiec 2009, 21:11
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.