web-dev-qa-db-fra.com

Ubuntu 16.04 empêche la mise en veille pendant l'accès au partage NFS

J'utilise actuellement un ancien ordinateur en tant que NAS dans mon sous-sol. Il a Ubuntu 16.04 (la version normale avec interface graphique) installé, mais aucun moniteur/clavier/souris n’est connecté, donc sans tête.

J'aimerais que le NAS s'éteigne lorsqu'il n'est pas utilisé et démarre via WOL lorsqu'un utilisateur tente d'accéder à l'un des partages NFS. Le démarrage fonctionne à merveille, mais l’arrêt automatique ne l’est pas.

J'essayais d'utiliser power settings à partir des paramètres système pour suspendre automatiquement les activités après une heure d'inactivité, mais cela semble ignorer l'activité NFS. J'ai aussi essayé d'utiliser xscreensaver, qui a le même problème.

Quelqu'un at-il une idée sur la façon de résoudre ceci ou a eu un problème similaire?

2
Dennis Hein

Merci pour le pointeur sur xset s resetser.dz !

On peut utiliser netstat -an | grep serverip:nfsport pour obtenir tous les partages NFS actifs (montés). Si cette commande n’affiche rien, le serveur peut s’arrêter sans interrompre aucun utilisateur.

En utilisant le power settings standard pour suspendre automatiquement et un script simple (voir ci-dessous) exécuté périodiquement avec un cronjob, je peux obtenir le comportement souhaité.

#!/bin/bash
if [[ $(netstat -an | grep 192.168.178.22:2049) ]]; then
    env DISPLAY=:0 xset s reset
fi

Ce script exécute la commande mentionnée et vérifie si une sortie est générée. Si tel est le cas (au moins un partage NFS est monté), le temps d'inactivité est réinitialisé et, par conséquent, la suspension est annulée.

192.168.178.22 est l'adresse IP de mon NAS et 2049 est le port NFS standard.

2
Dennis Hein