#!/bin/bash

NOMPROC=pppd           # démon ppp.
NOMFICHIERPROC=status  # Où chercher.
NONCONNECTE=65
INTERVALLE=2           # Mise à jour toutes les deux secondes.

nopid=$( ps ax | grep -v "ps ax" | grep -v grep | grep $NOMPROC | awk '{ print $1 }' )
# Trouver le numéro de processus de 'pppd', le 'démon ppp'.
# Doit filtrer les lignes de processus générées par la recherche elle-même.
#
#  Néanmoins, comme Oleg Philon l'a indiqué,
#+ ceci pourrait être considérablement simplifié en utilisant "pidof".
#  nopid=$( pidof $NOMPROC )
#
#  Morale de l'histoire :
#+ Quand une séquence de commandes devient trop complexe, cherchez un raccourci.


if [ -z "$pidno" ]   # Si pas de pid, alors le processus ne tourne pas.
then
  echo "Non connecté."
  exit $NONCONNECTE
else
  echo "Connecté."; echo
fi

while [ true ]       # Boucle sans fin, le script peut être amélioré ici.
do

  if [ ! -e "/proc/$pidno/$NOMFICHIERPROC" ]
  #  Quand le processus est en cours d'exécution, alors le fichier "status"
  #+ existe.
  then
    echo "Déconnecté."
    exit $NONCONNECTE
  fi

netstat -s | grep "packets received"  #  Obtenir quelques statistiques de
netstat -s | grep "packets delivered" #+ connexion.


  sleep $INTERVALLE
  echo; echo

done

exit 0

# De cette façon, le script ne se termine qu'avec un Control-C.

#    Exercices :
#    ----------
#    Améliorer le script pour qu'il se termine suite à l'appui sur la touche
#    "q".
#    Rendre le script plus facilement utilisable d'autres façons.
