Catégories
Expert Linux

Debian : créer un service Linux (daemon)

Un daemon Linux est l’équivalent d’un service Windows, c’est-à-dire un processus qui tourne en arrière-plan du système d’exploitation. Les démons Linux sont utilisés pour démarrer automatiquement un programme ou exécuter un script à chaque démarrage / redémarrage du système, par exemple pour un serveur web httpd ou nginx, un SGBD tel que Oracle ou PostgreSQL, etc. Ajouté à init.d, le nouveau processus sera en démarrage automatique et on pourra ainsi le surveiller avec un « status » et le gérer avec « start », « restart », « stop ».

Ce tutoriel explique comment créer et ajouter un daemon sur Debian, un service local Linux. Fonctionne sur les serveurs, machines virtuelles et postes de travail. La procédure est identique pour créer un daemon Ubuntu.

 

Créer un daemon sous Debian

1. Ouvrir un terminal locale ou une connexion à distance par SSH.

2. Créer un nouveau fichier avec un éditeur de texte (vi, vim, nano, gedit, emacs…) :

sudo vi /etc/init.d/windowsfacile

3. Ecrire ou copier/coller un script du ou des processus à exécuter automatiquement à chaque démarrage.

#!/bin/bash
### BEGIN INIT INFO
# Provides: windowsfacile
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start windowsfacile at boot time
# Description: Enable windowsfacile service
...

4. Ajouter le droit d’exécution sur ce nouveau fichier :

sudo chmod +x /etc/init.d/windowsfacile

5. Activer le daemon dans systemctl :

sudo systemctl enable windowsfacile

6. Recharger les daemons du système (ou redémarrer Debian) :

sudo systemctl daemon-reload
Catégories
Expert Linux

Ubuntu : créer un service Linux (daemon)

Un daemon (démon) Linux est un processus qui tourne en arrière-plan du système d’exploitation, comme un service Windows. Ce tutoriel explique comment créer et ajouter un daemon (service local) sur Linux, distribution Ubuntu. Cette procédure fonctionne sur les postes de travail, les machines virtuelles et les serveurs qui exécutent Ubuntu, que ce soit avec ou sans interface graphique, édition minimale par netinstall comprise. Toutes les versions de Ubuntu sont concernées par ce tuto, les éditions annuelles comme les versions LTS.

Cela sert par exemple à démarrer automatiquement un programme ou exécuter un script à chaque démarrage / redémarrage du système, très utile pour un serveur web httpd ou nginx, un SGBD tel que Oracle ou PostgreSQL, etc. Ajouté à init.d, le processus sera en démarrage automatique et on pourra le surveiller avec un « status » et le gérer avec « start », « restart », « stop ».

 

Créer un daemon sous Ubuntu

1. Ouvrir une console locale ou distante par SSH.

2. Utiliser un éditeur de texte pour créer un nouveau fichier (gedit, vi, vim, nano, emacs…) :

sudo vi /etc/init.d/windowsfacile

3. Ecrire ou coller le contenu d’un script de démarrage du ou des processus à lancer.

#!/bin/bash
### BEGIN INIT INFO
# Provides: windowsfacile
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start windowsfacile at boot time
# Description: Enable windowsfacile service
...

4. Donner les droits d’exécuter sur ce nouveau fichier :

sudo chmod +x /etc/init.d/windowsfacile

5. Activer le daemon :

sudo systemctl enable windowsfacile

6. Recharger les daemons du système (ou redémarrer l’OS) :

sudo systemctl daemon-reload
Catégories
Expert

Afficher uptime d’un service Windows

Vous avez peut-être programmé un script ou une tâche automatisée pour redémarrer un service Windows chaque jour, l’arrêter automatiquement après une action ou pour une action de maintenance. Aussi, une application métier peut planter et vous souhaitez savoir si c’est le service qui gère le logiciel qui aurait pu planter. Par exemple, le SGBD SQL Server fonctionne avec un service principal pour son moteur de base de données, tout comme le concurrent Oracle, la messagerie Microsoft Exchange, l’outil de sauvegarde Backup Exec ou tout autre programme qui est démarré par un service local.

Il n’y a besoin d’installer aucun logiciel pour avoir une vue sur la durée d’exécution d’un service Windows. On va utiliser la valeur Start Time (starttime) renvoyée par une commande PowerShell pour connaitre l’uptime d’un service local Windows, c’est-à-dire la durée depuis laquelle le service tourne sur le serveur ou le poste de travail. Ce tutoriel fonctionne avec toutes les versions de Windows qui interprètent du PowerShell, même avec la première version de Windows Server 2008 ou Vista. Bien sûr, Windows Server 2012 / R2 et 2016 sont compatibles, ainsi que Windows 7, 8 et 10.

 

Vérifier le Start Time d’un service local Windows

1. Ouvrir une console Windows PowerShell sur le poste ou le serveur Windows.

2. Copier / coller la commande suivante :

Get-Process | select name, starttime

3. La commande renvoie le nom du service dans la colonnes « Name » ainsi que l’heure de démarrage de ce service dans la colonne « StartTime » sous la forme date heure. Il ne s’agit pas d’une durée depuis laquelle le service est exécuté mais cela indique le jour et l’heure du démarrage du service.

Cette information est fiable puisqu’elle émane de Windows. C’est le système d’exploitation qui gère les services locaux Windows, il devient ainsi facile de vérifier si un service a redémarré comme prévu (tâche planifiée par exemple) ou si au contraire, un plantage est survenu depuis le démarrage de la machine.

Catégories
Expert

Microsoft Exchange : script pour démarrer ou arrêter tous les services

Comme tout gros logiciel serveur sur Windows, la solution de messagerie Microsoft Exchange s’exécute à l’aide de plusieurs services systèmes. Ces services dédiés à un serveur Exchange ont chacun leur rôle (MSExchangeEdgeSync pour le serveur de transport Edge avec AD LDS, MSExchangeIS pour la banque de données des boites aux lettres, MSExchangeFrontEndTransport pour le transport frontal SMTP, etc).

Lorsque l’on souhaite faire une opération de maintenance qui nécessite l’arrêt de tous les services, il est fastidieux d’aller dans la console des Services Windows pour les arrêter un à un. Et c’est là qu’un simple script .bat peut faciliter la vie de l’administrateur système. Ce guide propose deux scripts, l’un pour arrêter tous les services Microsoft Exchange en un seul clic, l’autre pour démarrer tous les services après l’opération de maintenance terminée.

Ces exemples de script ont été réalisés à partir d’un serveur Exchange 2007 qui héberge tous les rôles. Il convient évidemment de l’adapter en fonction de la version de MSExchange et des rôles du serveur en question.

 

Script pour arrêter tous les services Exchange

Il suffit de copier / coller ces lignes dans un Notepad, les vérifier, les modifier si besoin et enregistrer le fichier texte en .bat :

net stop MSExchangeIS
net stop MSExchangeSA
net stop MSExchangeEdgeSync
net stop MSExchangeImap4
net stop MSExchangePop3
net stop MSExchangeSearch
net stop msftesql-Exchange
net stop MSExchangeAntispamUpdate
pause

 

Script pour démarrer tous les services Microsoft Exchange

Créer un fichier texte (.bat) qui va démarrer tous les services MSExchange* associés au serveur de messagerie Microsoft :

net start MSExchangeIS
net start MSExchangeSA
net start MSExchangeEdgeSync
net start MSExchangeImap4
net start MSExchangePop3
net start MSExchangeSearch
net start msftesql-Exchange
net start MSExchangeAntispamUpdate
pause

Catégories
Expert

Allonger le timeout d’un service Windows

Par défaut, Windows laisse 30 secondes à un service pour démarrer. Au-delà de ce temps, un message d’erreur s’affiche et stoppe l’opération (timeout). Selon les programmes, il est peut-être préférable d’étendre ce timeout à une minute ou plus pour laisser le temps au service de démarrer.

Ce tutoriel concerne toutes les versions de Windows, aussi bien Server (2003 – 2008 – 2012 / R2) que postes de travail (Windows 7 – 8 – 10).

 

Message d’erreur

Windows n’a pas pu démarrer le service NomService sur Ordinateur.

« Erreur 1053 : Le service n’a pas répondu assez vite à la demande de lancement ou de contrôle. »

En anglais : Could not stop the ServiceName service on Computer. Error 1053: The service did not respond to the start or control request in a timely fashion.

 

Etendre le délai pour démarrer un service Windows

1. Ouvrir la base de registre regedit (Démarrer, Exécuter, regedit).

2. Dérouler HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

3. A droite, si la valeur ServicesPipeTimeout existe, l’ouvrir pour la modifier.

Si elle n’existe pas, créer une Nouvelle Valeur DWORD ayant pour nom « ServicesPipeTimeout » .

4. Ouvrir la valeur ServicesPipeTimeout et indiquer que la Base sera Décimale puis fixer la valeur à 60000 (pour 60 secondes, soit 1 minute).

5. Valider par OK et redémarrer Windows pour que la modification soit prise en compte.

Maintenant, les services patienteront jusqu’à 60 secondes avant d’afficher une erreur de non-réponse. Il est aussi possible d’allonger ce délai à 2 minutes par exemple (valeur : 120000).

Catégories
Expert Tutoriel

Démarrer et arrêter à distance un service Windows

Pour gérer les services d’une machine distante, il faut tout d’abord se connecter avec un compte qui dispose des droits suffisants (utilisateur faisant partie du groupe Administrateur local ou un compte Admin du domaine).
Pour vérifier l’accès, exécuter une commande du type net use \\serveur password /USER:login

La commande a exécuter pour gérer les services est « sc » .

Démarrer un service sur un ordinateur distant

sc \\serveur start SERVICE
par exemple : sc \\SRVSQL start MSSQLSERVER

Arrêter un service sur un ordinateur distant

sc \\serveur stop SERVICE
par exemple : sc \\SRVBACKUP stop BackupExecRPCService

Suspendre un service sur un ordinateur distant

sc \\serveur pause SERVICE
par exemple : sc \\SRVORACLE pause OracleServiceORCL

Connaitre l’état d’un service

sc \\serveur query SERVICE
par exemple : sc \\SRVMAIL query MSExchangeIS

Autres options

create : créer un nouveau service en l’ajoutant au registre
delete : supprimer le service de la base de registre
description : modifier la description du service

Catégories
Expert Tutoriel

Supprimer un service Windows

Il se peut qu’un programme désinstallé ne supprime pas automatiquement les services associés. Il existe une solution pour supprimer à la main un service Windows. Avec une seule ligne de commande, il est facile de désinstaller un service Windows, que ce soit sur Windows 10, 8, 7 ou sur système d’exploitation Windows Server 2016, 2012 / R2, 2008 / R2…

 

Désinstaller un service Windows

Plutôt que de supprimer à la main les clés de registre dans regedit, Microsoft recommande d’utiliser une commande spécifique.

1. Ouvrir un Invite de commandes (cmd.exe) en tant qu’Administrateur.

2. Taper : sc delete NomService

3. On peut aussi supprimer un service sur une machine distante : sc NomPC delete NomService
Attention aux droits pour ne pas recevoir un accès refusé.

Catégories
Expert Tutoriel

Modifier un service Windows

Pour corriger un bug ou faire des essais, on peut vouloir modifier le chemin ou les détails d’un service de Windows. Impossible de le faire via la console services.msc mais c’est faisable via l’éditeur de base de registre.

 

Modifier un service Windows en base de registre

1. Ouvrir la console Exécuter et taper « regedit » avant de valider.

2. Dérouler HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

3. Cette longue liste correspond aux services Windows. Dans la partie droite de chacun se trouvent les détails avec le nom affiché, la description et le chemin d’accès.

Catégories
Intermédiaire Tutoriel

Désactiver le service d’indexation Windows Search

Pour une configuration matérielle un peu faible et essayer d’améliorer les performances de l’ordinateur qui tourne sous Windows Vista, 7 ou 8, il est possible de désactiver le service d’indexation Windows Search. Cette fonction est agréable pour trouver en quelques secondes le résultat d’une recherche sur le disque dur mais elle consomme aussi des ressources pour indexer les fichiers de votre ordinateur.

 

Désactiver Windows Search et l’indexation de fichiers

Note : mieux vaut ne pas désactiver cette fonction si vous ne savez pas à quoi ça sert et que votre ordinateur est performant.

1. Depuis l’écran d’accueil de Windows, taper « services » et sélectionner Paramètres. Dans les résultats à gauche, ouvrir Afficher les services locaux.

2. Localiser « Windows Search » qui doit se trouver tout en bas de la liste.

3. Double cliquer sur la ligne Windows Search et modifier le Type de démarrage en choisissant Désactivé.

4. Cliquer sur Arrêter et valider quand il est demandé d’arrêter les autres services. Cliquer sur OK pour fermer la fenêtre.

5. Fermer les fenêtres et rester sur le bureau. Ouvrir l’explorateur de fichiers par cette icône (ou par la combinaison de touches Windows + E).

6. Dans la partie de gauche, cliquer sur Ordinateur.

7. Faire un clic droit sur votre disque dur (C:) et Propriétés. La manipulation sera à refaire ensuite sur vos autres disques et partitions.

8. Décocher la ligne « Autoriser l’indexation du contenu des fichiers de ce lecteur en plus des propriétés de fichier » puis cliquer sur le bouton Appliquer.

9. Choisir « Appliquer les modifications au lecteur C:\, aux sous-dossiers et aux fichiers » et valider par OK.

10. Valider l’étape des droits d’utilisateurs par Continuer.

11. Choisir « Ignorer tout » si le message apparait. Quelques fichiers ne pourront pas être désindexés, bien peu par rapport aux dizaines de milliers que contient le disque dur.

12. L’opération peut prendre quelques minutes.

Une fois terminé, recommencer à l’étape 7 si vous avez plusieurs disques durs ou partitions.

13. Redémarrer l’ordinateur pour valider ces modifications.

Les recherches de fichiers peuvent maintenant prendre plus de temps qu’auparavant mais les performances de la machine ne seront pas affaiblies par cette fonction d’indexation.

 

Ré-activer Windows Search

Si vous souhaitez remettre en route la fonction Windows Search, retourner dans les Services, choisir le Type de démarrage « Automatique (début différé) » et valider par Appliquer (sans faire OK). Ensuite, cliquer sur le bouton Démarrer pour démarrer immédiatement Windows Search sans avoir à redémarrer la machine.

Aller ensuite dans les propriétés du disque dur pour cocher la ligne « Autoriser l’indexation du contenu des fichiers de ce lecteur en plus des propriétés de fichier » avant de valider.

 

Catégories
Intermédiaire Tutoriel Windows Phone 8 et 8.1

Windows Phone : désactiver les applications en tâche de fond

Tout content de votre Windows Phone, vous installez diverses applications plus ou moins utiles. Puis un jour, vous vous retrouvez avec une autonomie réduite de moitié : pourquoi ?

Certaines applications embarquent avec elles des « background agent » : derrière ce drôle de nom se cachent des petits processus qui s’exécutent à intervalles régulier, par exemple pour mettre à jour les tuiles des applications épinglées sur l’écran d’accueil. Malheureusement ce genre d’agents peut causer une perte d’autonomie, même nous chez WindowsFacile.fr, avons préféré désactiver la tuile dynamique de notre application Windows Phone.

Dans ce tutoriel, nous allons voir comment consulter les applications qui utilisent notre batterie même quand elles ne sont pas lancées. Nous verrons aussi comment « bloquer » les agents.

[highlight color= »yellow »]Attention, certaines applications risquent de devenir instables ou ne plus fonctionner si vous bloquez l’agent associé.[/highlight]

 

Voir et désactiver les applications en arrière-plan

1) Aller dans les paramètres du Windows Phone :

 

2) Une fois dans les paramètres du téléphone, passer sur la page suivante (ou en cliquant sur « applications » ) :

 

3) Cliquer sur « Tâches en arrière-plan » : la liste des tâches apparaitra. Il est possible de bloquer certains tâches pour qu’elles ne puissent plus se lancer en tâche de fond et donc ne plus consommer de batterie.