Executando um script usando serviço no Debian 10

Executando um script usando serviço no Debian 10

Estou executando um Debian 10. Gostaria de mapear uma unidade FTP na inicialização. Eu tenho o arquivo .sh que funciona sozinho, mas ao usar o ftpconnect.service que criei. Com a ajuda das postagens deste site, ele não pensa e aparece como inativo (morto)

Se eu executar um comando, a unidade FTP será mapeada e posso usá-la.

/mnt/ftpconnect.sh start

Mas eu gostaria que iniciasse quando o sistema iniciasse. Ao verificar o caminho para onde a unidade deve ser mapeada, ela não está conectada.

Tentei ativar networ-online.target, Types=simple, User=Root, WorkingDirectory. e restart=on-failure eu os reativei

Este arquivo abaixo é chamado ftpconnect.service

[Unit]
Description=Maps FTP Bacup to /mnt folder
# After=network.target
# After=systemd-user-sessions.service
# After=network-online.target

[Service]
# User=root
# Type=simple
# PIDFile=/run/my-service.pid
# WorkingDirectory=/mnt/
ExecStart=/mnt/ftpconnect.sh start
#ExecReload=/mnt/ftpconnect.sh reload
#ExecStop=/mnt/ftpconnect.sh stop
# TimeoutSec=30
# Restart=on-failure
# RestartSec=30
# StartLimitInterval=350
# StartLimitBurst=10

[Install]
WantedBy=default.target

O arquivo .sh é chamado ftpconnect.sh e está localizado em /mnt/ftpconnect.sh

#! /bin/sh
### BEGIN INIT INFO
# Provides:          ftpserver
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start ftpserver daemon at boot time
# Description:       Enable ftpserver service provided by daemon.
### END INIT INFO

# Author: Justin Hartman <[email protected]>
# URL: http://justinhartman.co.za
# From Debian skeleton

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/curlftpfs
OPTIONS="-o allow_other ftp://USERNAME:PASSWORD@URL" <<I HAVE REMOVED THESE DETAILS FOR SECURITY>>
MOUNT=/mnt/backupdrive
UMOUNT=/bin/umount
NAME=backupdrive
DESC="Remote FTP Server Mount"

PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

case "$1" in
  start)
        echo -n "Mounting the $DESC: $NAME"
        $DAEMON $OPTIONS $MOUNT
        echo "Server has been mounted at $MOUNT"
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        $UMOUNT $MOUNT
        echo "Server has been unmounted"
        ;;
  restart|force-reload)
        echo -n "Re-mounting the $DESC: $NAME"
        $UMOUNT $MOUNT
        sleep 2
        $DAEMON $OPTIONS $MOUNT
        echo "The server has been re-mounted at $MOUNT"
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

Alguém poderia me ajudar a ver o que estou fazendo de errado. Pelo que tenho lido, tudo parece ok. Mas claramente estou pensando errado.

Responder1

Obrigado a Michael Hampton. Foi isso que funcionou para mim e a unidade agora é montada automaticamente

Como eu fiz isso.

mkdir /mnt/backupdrive    
nano /etc/fstab

Adicionado

curlftpfs#ftp://USERNAME:[email protected]/ /mnt/backupdrive fuse _netdev 0 0

Salvei e reiniciei a unidade FTP montada em backupdrive após a reinicialização.

Descobri que se o item abaixo não fosse adicionado, o sistema falharia devido à rede. Presumo que ele estava tentando executar antes de a rede ser conectada.

_netdev

informação relacionada