IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Mettre un script Perl en service Windows ?


Sujet :

Windows

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 140
    Points
    140
    Par défaut Mettre un script Perl en service Windows ?
    Bonjour ,
    alors la situation est la suivante : j'ai un script Application perl que j'aimerai mettre en service windows :

    Les moyens : bash script , srvany.exe et instsrv.exe

    Le problème c'est que je pense que rien ne se lance au demarrage du service que j'affirme se crée et démarre correctement j'ai probablement fait une erreur dans le fichier .REG ?

    Voila alors les code :

    le init.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    instsrv dashboard "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
    regedit /s dashboard.reg
    net start dashboard
    puis le dashboard.reg

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    REGEDIT4
    
    [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard]
    "Type"=dword:00000010
    "Start"=dword:00000002
    "ErrorControl"=dword:00000001
    "ImagePath"="C:\\Program Files\\Windows Resource Kits\\Tools\\srvany.exe"
    "DisplayName"="dashboard"
    "ObjectName"="LocalSystem"
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard\Parameters]
    "Application"="C:\\Program Files\\Windows Resource Kits\\Tools\\Scripts\\hello.bat"
    [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard\Security]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard\Enum]
    "0"="Root\\LEGACY_TOTO\\0000"
    et dans le Hello.bat je fait un perl monProg.pl

    j'ai quand même le stop.bat au cas ou

    j'ai essaié de mettre des trucs a la place de hello.bat du style firefox.exe ou autre mais rien ne change il lance rien le service


    des idées ? merci

  2. #2
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Bonjour,
    En gros ça revient a mettre l'interpréteur perl avec en paramètre le fichier pl en service.
    Je suppose qu'il ne t'es pas possible de compiler ton script?
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 140
    Points
    140
    Par défaut
    C'est exactement ce que je veut faire ; en effet j'ai un script qui tourne ( un serveur soap qui execute des module periodique ou sur demande ) et je veut le mettre en script pour qu'il se lance au démarage de windows et y reste tout le temps .

    je conné pas si il y'as des solutions altérnative a ce que j'ai proposé et si oui comment ( de préférence avec des freeware )

    Merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 140
    Points
    140
    Par défaut
    En effet j'ai constater que le script voulu se lance mais meurt aussitôt.
    j'ai réglé le problème des exe il se lance sans problème mais pour le script bat qui lance le perl il le lance mais effectue aucun traitement et die aussitôt .

    pour info le script perl est un deamon soap donc il devait resté

    des idées?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 058
    Points : 12 093
    Points
    12 093
    Par défaut
    Quel est le motif de la fin du script ?
    Les logs ne permettent pas de connaître le motif de la fin de l'exécution de l'interpréteur perl ?

    Attention, en service, le compte utilisateur utilisé ne correspond pas à un utilisateur car personne n'est connecté et il n'y aura aucune interaction entre le programme est l'écran (affichage de fenêtre par exemple). Les services, par défaut, utilisent une Workstation (concept de sécurité regroupant les trois écran Bureau+ScreenSaver+[Ctr+Alt+Supp]) réservé pour eux et donc invisible à l'utilisateur connecté qui en utilise une autre (workstation:-)).

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 140
    Points
    140
    Par défaut
    Oui j'ai remarquer ça en effet j'étais en bureau virtuel et après verification sur le serveur lui même le programme se lançer effectivement j'ai mis un simple :

    file.bat a executer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo debut
    perl file.pl > out.txt
    echo fin
    ca marche le fichier se crèer mais vide alors qu'on executant : perl file.pl tout seul
    j'ai tout les logs :s

    d'ailleurs je me pause la question si ce que je veut faire est réalisable ( surtout fonctionnel )

    lancer un script PERL ( daemon SOAP ) en service windows ?

    merci encore

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 140
    Points
    140
    Par défaut
    Finalement ça marche,
    Pour les personnes qui peuvent être intéressé voila la procédure complète :

    1- outils
    télécharger Windows Server 2003 Resource Kit Tools
    ou juste (instsrv.exe et srvany.exe) ce dont on aura besoin
    les mettre dans system32 ou cèer des variable dans le path sinon utilisé le chemin complet j'ai mis les deux pour voir
    pour moi le instsrv est déclarer comme commande et pour srvany.exe il faut mettre le chemin complet

    2- créer le service : file : Init.bat
    dashboard et le nom du service
    dashboard.reg et le fichier pour initialisé les valeurs du registre pour le service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    instsrv dashboard "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
    regedit /s dashboard.reg
    3- le fichier : dashboard.reg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    REGEDIT4
    
    [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard]
    "Type"=dword:00000010
    "Start"=dword:00000002
    "ErrorControl"=dword:00000001
    "ImagePath"="C:\\Program Files\\Windows Resource Kits\\Tools\\srvany.exe"
    "DisplayName"="dashboard"
    "ObjectName"="LocalSystem"
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard\Parameters]
    "Application"="C:\\Program Files\\Windows Resource Kits\\Tools\\Scripts\\hello.bat"
    [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard\Security]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dashboard\Enum]
    "0"="Root\\LEGACY_TOTO\\0000"
    Application : est le fichier a lancer au démarrage du service
    sinon attention aux PATH !!

    4- créer un script a lancer par ce service . par exemple :
    Faites attention au path en effet j'ai constater que le script a lancer par le service a comme path courant windows\system32 tout dépend de la version windows (XP , server ...) .
    ce que vous pouvez faire c'est un script simple : hello.bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cd PATH_DE_VOTRE_PROG
    echo Bonjour > file.txt
    perl votre_script_perl.pl
    ainsi on peut vérifier la création du fichier dans le bon path ( c'est con je sais )


    5- Lancer le script init.bat
    6- allez sur Panneau de config -> outils admin -> services -> Nom_Service puis double click dessus :

    vous aurez une petite fenêtre : allez sur connexion puis cocher autoriser le service a interagir avec le bureau .

    et voila maintenant reste juste un script pour tout arrêter et nettoyer le registre :

    stop.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    net stop dashboard
    instsrv dashboard remove
    j'ai probablement oublié des choses ou mal expliquer d'autre c'est pas mon domaine et j'ai pas la connaissance requise c'est juste une petite expérience

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script Perl incompatible de Windows 2000 à XP
    Par Arioch dans le forum Langage
    Réponses: 23
    Dernier message: 26/10/2007, 12h19
  2. Utiliser un script Perl comme commande windows
    Par mquentin dans le forum Langage
    Réponses: 2
    Dernier message: 12/03/2007, 16h39
  3. Mettre une application access en service windows
    Par stolx_10 dans le forum Access
    Réponses: 7
    Dernier message: 17/10/2006, 12h16
  4. Script perl web service et proxy
    Par amer2006 dans le forum Langage
    Réponses: 2
    Dernier message: 26/07/2006, 14h35
  5. Mettre une application access en service windows.
    Par chris_magic dans le forum Access
    Réponses: 11
    Dernier message: 11/07/2006, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo