Perl futtatása Win 2008 szerver indulásakor

Perl futtatása Win 2008 szerver indulásakor
2012-12-03T15:07:29+01:00
2013-05-05T15:16:59+02:00
2022-10-15T23:21:40+02:00
johnnyvj
Sziasztok!

Az előzőekben általam "feldobott" problémám folytatásaként van egy demon.pl Perl programom. Ha ezt kézzel elindítom a Windows 2008 alatt, akkor semmi gond nincs. Bizonyos időközönként teszi azt, ami a dolga: figyeli, mit "mondd" neki fájlok segítségével az Apache alatt futó weboldal és azt elvégzi.

Ott kezdődik a probléma, hogy ez a Win 2008 egy virtuális szerver (mondjuk ettől még jól működik), és ha a rendszergazda valamilyen ok miatt gondol egyet és kilövi majd újra indítja, akkor a Win 2008 szépen ott figyel és vár egy loginra. Addig nem indul el.
Nem úgy az Apache, ami természetesen ilyenkor is fut.

Keresgéltem és találtam is egy nekem legjobban tetsző megoldást: Win32:Daemon
Tök jó a minta is benne, csak azt nem tudom, hogy ennek a segítségével miképp is fog elindulni a demon.pl-em, amikor a Win vár a login-ra.

Én nem ragaszkodom ahhoz sem, hogy "service"-ként fusson a demon.pl, elég ha csak elindul.

Kérnék szépen egy kis "szájbarágós" segítséget tőletek, melyet előre is köszönök+
Mutasd a teljes hozzászólást!
VÉGRE!!

Egy bosch-os ismerősöm segített a probléma megoldásában és le is írom, hátha más is keres megoldást ilyen dologra:

Ajánlom figyelmetekbe az alábbi linket:
RunAsSvc

Nemes egyszerűséggel Le A Kalappal!

Köszönöm szépen mindenkinek a segítséget!
Mutasd a teljes hozzászólást!

  • Win 2008 szépen ott figyel és vár egy loginra. Addig nem indul el.

    Nem úgy az Apache, ami természetesen ilyenkor is fut.


    Természetesen?

    Amikor a Windows elindul és vár a loginra (?) az teljesen megegyező azzal, mint amikor elindítasz egy Linuxot és nem jelentkezel be. Akkor nem futna a Linux?

    Szóval szó sincs arról, hogy a Windows várna. A rendszer inicializálása után a Windows szépen elindítgatja azokat a service-eket (Linux alatt daemonokat), amelyek be vannak állítva automatikus indításhoz.

    Az Apache nem "természetesen" indul el, hanem úgy van bekonfigurálva, hogy elinduljon.

    A te problémád az, hogy a Perl scripted user mode appként fut, az bizony csak bejelentkezés után fog elindulni.

    Itt egy leírás, ami megmutatja, hogyan lehet service-ként indítani a scripted, de nem próbáltam ki. Nem biztos, hogy ez a legalkalmasabb módja a feladat megoldásának, csak a problémádat próbáltam körülírni.

    Csak saját felelősségre!
    Mutasd a teljes hozzászólást!
  • Szia!
    Az Apache nem "természetesen" indul el, hanem úgy van bekonfigurálva, hogy elinduljon.

    Ezzel tisztában is vagyok, meg az egész folyamattal. Linux alatt nem jelentene gondot, mert ott tudom, miképp' kell úgy beállítani egy programot, hogy az is elinduljon, amikor a Linux "bejön".
    Megkukkantom, amit írtál és be fogok számolni.

    Addig is köszi szépen!
    Mutasd a teljes hozzászólást!
  • Helló Kukipapa!

    Nos, a linken olvasható dolgok tök egyértelműek, érthetőek és használhatók. Igaz, kiderült, hogy Windows 2008 alá nincs Resource Kit, ami tartalmazná a hőn áhított instsrv és srvany.exe programokat (az oldalon felajánlott letöltési lehetőségen pedig max. vírust lehetett volna beszerezni), de hosszas (majd fél nap) keresgélés után kiderült, hogy a 2003-as verziót letöltve (és az ott olvasható figyelmeztetést figyelmen kívül hagyva), máris kipróbálhatom a dolgot.
    Az INSTRV MyPerlService C:\WINNT\SRVANY.EXE rész volt a legkönnyebb :)
    Ez után jött a REGEDIT. Ezzel sem volt baj.
    Majd elindítottam a szolgáltatást, ami látszólag el is indult. Pontosabban a futó programok között megjelent az srvany.exe.
    Ennyi.
    Semmilyen életjelet nem tudtam kicsikarni a programomból.
    Már odáig leegyszerűsítettem a dolgot, hogy a program annyit csinált, hogy elindul, készít egy fájlt oda, ahol éppen van (ha van) és sleep-be megy át hosszú időre.
    Ha a szolgáltatást leállítom, akkor leáll és srvany.exe eltűnik a memóriából.

    Mégegyszer köszönöm a segítségedet, de kérnék szépen további segítséget, hogy merre keressem a hiba (vagy jelenség) okát!
    Mutasd a teljes hozzászólást!
  • Hello,

    Kiprobáltad a 3. példát a win32::Daemon-ban?

    (Example 3: Install the service)

    Ha lefuttatod ezt, akkor installál egy uj daemont (service windows-ul), amit a service managerben be tudsz állítani hogy automatikusan elinduljon.


    use Win32::Daemon; my $ServicePath = 'full path to perl.exe'; my $ServiceParams = 'c:\perl\scripts\myPerlService.pl -param1 -param2 "c:\Param2Path"'; %Hash = ( machine => '', name => 'PerlTest', display => 'Oh my GOD, Perl is a service!', path => $ServicePath, user => '', pwd => '', description => 'Some text description of this service', parameters => $ServiceParams ); if( Win32::Daemon::CreateService( \%Hash ) ) { print "Successfully added.\n"; } else { print "Failed to add service: " . Win32::FormatMessage( Win32::Daemon::GetLastError() ) . "\n"; }
    Mutasd a teljes hozzászólást!
  • Szia apaczko!

    Még nem próbáltam.
    Azt viszont kipróbáltam, hogy itthon az XP-re is leszedtem az emléített Resource Kit-et, feltettem és a leírt módszert alkalmazva SIMÁN MEGY a démonom.
    Nagyon Win 2008 szaga van a dolognak.

    Na, ki fogom próbálni az általad ajánlott módszert.
    Majd jövök :)
    És köszi!
    Mutasd a teljes hozzászólást!
  • A Windows 2008, amit játszom a kis kutyát (értsd: próbálkozom) 64 bites cucc.
    A cpan-os telepítővel kiadtam az
    install Win32::Daemon
    parancsot. Kicsit szüttyögött, majd jött a hibaüzenet a Windows-tól:
    perl.exe - System Error
    The program can't start because libgcc_s_sjls-1.dll is missing from your computer. Try reinstall the program to fix this problem.

    Majd beleszalad a
    Testing Win32::Daemon 20110117
    kiírásba és kiakad. Csak a CTRL C segít rajta.
    Mutasd a teljes hozzászólást!
  • Szóval: nem megy

    Már a Windows 2008 sc parancsával is létrehoztam a szervízt, de ugyebár mindképp' kell ide is az az srvany.exe, ami futtatja a perl-t és az majd a pl-t.

    Azt viszont nem tudom, fontos-e, de ha elindítom a szolgáltatást és ugye vele együtt ezt az srvany.exe programot, akkor a Task managerben egy *32 kiegészítéssel fut.
    Lehet, hogy itt van elásva a kutya?

    Én úgy látom, hogy nem nagyon van 64 bites verzió erre a megoldásra...
    Mutasd a teljes hozzászólást!
  • VÉGRE!!

    Egy bosch-os ismerősöm segített a probléma megoldásában és le is írom, hátha más is keres megoldást ilyen dologra:

    Ajánlom figyelmetekbe az alábbi linket:
    RunAsSvc

    Nemes egyszerűséggel Le A Kalappal!

    Köszönöm szépen mindenkinek a segítséget!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd