Screen sous NAS Synology

Si vous avez déjà fait une utilisation avancée de votre NAS, il vous est sûrement déjà arrivé d’utiliser des commandes dans un terminal connecté en SSH à votre NAS.

Dans ces cas là, un besoin assez récurrent est de vouloir laisser ces commandes tourner en tâche de fond et ce même si vous vous déconnectez de votre NAS.

Voici comment faire en utilisant l’utilitaire « screen » dont je vais expliquer quelques cas d’usage.

Installation

L’utilitaire « screen » n’est pas disponible en standard sur les NAS Synology, c’est pourquoi nous allons installer le paquet correspondant de la communauté « Synology Community ».

Dans le centre de paquets, allez dans la partie « Communauté », puis cliquez sur le bouton « Paramètres » : ajoutez l’URL « https://packages.synocommunity.com/ » dans la boite de dialogue qui s’ouvre :

Vous devriez alors voir un paquet nommé « SynoCli Network Tools » :

Jusqu’à là, nous sommes bons 🙂

Connexion SSH

Je vais faire une piqure de rappel concernant la connexion via un Terminal vers votre NAS que vous soyez sous Windows, Linux ou Mac.

Tout d’abord sous DSM, activez le service « SSH » en allant dans « Panneau de configuration > Terminal & SNMP » puis cochez l’option « Activer le service SSH » :

Pensez à indiquer un numéro de port personnalisé (comme 44 par exemple).

Votre service SSH est alors disponible sur votre réseau local.

Ensuite récupérez l’adresse IP locale de votre NAS. Vous pouvez la trouver sous DSM dans « Santé du système » jusque après « LAN 1 » :

Lancez un Terminal (sous windows, il s’agit de « Cmd »), et vous pourrez vous connecter à votre NAS via la commande :

ssh user@192.168.1.79 -p 44

Où vous aurez à remplacer :

  • « user » : par votre nom d’administrateur
  • « 192.168.1.79 » : par l’adresse IP locale de votre NAS
  • « 44 » : par le numéro de port du service SSH si celui-ci est différent de l’exemple

Confirmez votre connexion en entrant votre mot de passe et vous y êtes !

Utilisation de screen

Depuis votre terminal connecté en SSH, lancez la commande ci-dessous pour vérifier que screen est bien reconnu :

screen --version

Vous devriez voir une ligne de type :

Screen version 4.08.00 (GNU) 05-Feb-20

Prenons l’exemple d’un serveur de jeu de type « snake » dont j’avais parlé dans l’article « Utilisation de Node.JS sous DSM 7.0« .

On va partir du principe que le paquet a été installé sur votre NAS mais que le serveur n’est pas démarré.

Pour lancer le serveur de jeu, tapez :

cd /var/packages/snek/target
npm start

Le serveur indique qu’il écoute le port 3000 sur votre NAS :

> snek-1@1.0.0 start
> node server/server.js

listening on *:3000

Si vous lancez un navigateur vers l’adresse IP locale de votre NAS suivi du port 3000 (http://192.168.1.79:3000), celui-ci se connectera au serveur du jeu :

Cependant, que se passe-t-il si votre connexion SSH se ferme au bout d’un moment ?

Le serveur de jeu ne sera alors plus accessible.

Pour que la session qui lance le serveur de jeu reste active – même si vous quittez votre connexion vers votre NAS-, lancez la commande suivante :

screen -S snake 

Cela va indiquer que vous souhaitez créer une nouvelle session nommée « snake ».

Dans cette session tapez à nouveau. :

cd /var/packages/snek/target
npm start 

Pour quitter la session screen tout en la laissant tourner en tâche de fond, tapez :

Ctrl+a puis d

La lettre « d » signifie « detach » ce qui signifie que la session est détachée.

Vous êtes à présent sur votre session SSH d’origine. Quittez-là en tapant la commande :

exit

Si vous vous connectez à nouveau à l’adresse de votre NAS et du port 3000 via votre navigateur (http://192.168.1.79:3000), vous aurez toujours accès au serveur de jeu !

Reconnectez-vous à présent en SSH à votre NAS.

Pour vérifier les sessions screen en cours, tapez :

screen -ls

Vous devriez voir celle du serveur de jeu :

There is a screen on:
13160.snake (Detached)

Pour vous connecter à nouveau à cette session, tapez :

screen -r 13160

Remplacez « 13160 » par le numéro indiqué par la commande « screen -ls » précédente.

Notez que la lettre « r » signifie « resume ».

Vous devriez alors retrouver le contenu de la session « snake » précédente :

sh-4.4$ cd /var/packages/snek/target
sh-4.4$ npm start

> snek-1@1.0.0 start
listening on *:3000
Player Connected

Vous pouvez maintenant quitter le serveur en tapant :

Ctrl+c

Puis :

exit

Si vous listez à nouveau les sessions screen :

screen -ls 

Cette fois-ci aucune session n’est active :

No Sockets found in /tmp/uscreens

Avec ces quelques commandes vous devriez pouvoir exploiter l’utilitaire screen sur votre NAS Synology !

Pour finir, pensez à désactiver le service SSH une fois vos essais terminées si jamais celui-ci n’est plus utile.

Pour aller plus loin

Si vous souhaitez manipuler plusieurs sessions screens, voici quelques commandes supplémentaires :

  • Ctrl+a c : Crée une nouvelle fenêtre
  • Ctrl+a  » : Liste toutes les fenêtres
  • Ctrl+a 0 : Bascule vers la fenêtre zéro
  • Ctrl+a A : Renomme la fenêtre courante
  • Ctrl+a S : Divise horizontalement la région en 2 régions
  • Ctrl+a | : Divise verticalement la région en 2 régions
  • Ctrl+a tab : Déplace le focus de saisie vers la région suivante
  • Ctrl+a Ctrl+a : Bascule entre la fenêtre courante et précédente
  • Ctrl+a Q : Ferme toutes les régions sauf celle actuelle
  • Ctrl+a X : Ferme la région courante

Bonne découverte !

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s