OS-sw ver.: CCBot/2.0 (https://commoncrawl.org/faq/)
Login date: 23 Feb 20 - 09:45:00
IP Address: 35.175.113.29Cursore

Registrati

---------------------------------------------------------------------------------
Introduzione
---------------------------------------------------------------------------------



Visto il problema dell'upstart (che mi ha fatto rimpiangere in molteplici occasioni il vecchio sistema di init) delle ultime distribuzioni linux, che in alcuni casi (come questo) non attendono il montaggio dei filesystem (di rete e non) ho inserito un piccolo script che attende 100 secondi (massimo e modificabile) per ovviare al problema.

---------------------------------------------------------------------------------
Script
---------------------------------------------------------------------------------



Di seguito incollo un semplice script che effettua 10 tentativi ogni 10 secondi controllando ogni volta se il punto di mount specificato nella variabile P è effettivamente montato o no, se lo trova montato esce restituendo valore 0 altrimenti restituisce 1:

/opt/scripts/controlla_mnt_usb.sh

#!/bin/bash
X=1
P="/mnt/usb"
while [ $X -le 10 ] && [ $X != 0 ]
do
if mountpoint -q  "$P"; then
       X=0
else
        sleep 10
        let "X += 1"
fi
done
if [ $X -eq 0 ]; then
  echo "0"
else
  echo "1"
fi

Tutto ciò opportunamente inserito nello script che gestisce il demone di Transmission non farà altro che far partire Transmission al boot se ad un certo punto si troverà il punto di mount montato, altrimenti uscirà e non farà partire alcun demone.

Parte dello script /etc/init.d/transmission-daemon :

...
start_daemon () {
    retn_value=$(/opt/scripts/controlla_mnt_usb.sh)
    if [ "$retn_value" -eq "1" ]; then
        echo "Filesystem non montato"
        exit 0
    fi
    if [ $ENABLE_DAEMON != 1 ]; then
        log_progress_msg "(disabled)"
                log_end_msg 255 || true
    else
        start-stop-daemon --start \
        --chuid $USER \
                $START_STOP_OPTIONS \
        --exec $DAEMON -- $OPTIONS || log_end_msg $?
                log_end_msg 0
    fi
}
...


---------------------------------------------------------------------------------
Varie
---------------------------------------------------------------------------------



Ho addizionalmente inserito anche il parametro "fai partire tutti i torrent" quando faccio lo start del demone, perchè il comportamento di Transmission quando non si trova un file nella directory nella quale scrica mette il torrent in stop mode e non avvierà piu il demone con il torrent in modalità "started", ho inserito anche lo stop di tutti i torrent quando si stoppa il demone (anche se credo non influisca molto)

...
   start)
        log_daemon_msg "Starting bittorrent daemon" "$NAME"
        start_daemon
        transmission-remote --torrent all --start
        ;;
    stop)
        transmission-remote --torrent all --stop
        log_daemon_msg "Stopping bittorrent daemon" "$NAME"
        start-stop-daemon --stop --quiet \
            --exec $DAEMON --retry $STOP_TIMEOUT \
            --oknodo || log_end_msg $?
        log_end_msg 0
        ;;
...

Visite totali127929
Questo sito web usa i cookies per gestire alcune funzionalità, quali navigazione, autenticazione, commenti, etc. Utilizzando il nostro sito web, accetti l'utilizzo dei cookies.