Debian 10에서 서비스를 사용하여 스크립트 실행

Debian 10에서 서비스를 사용하여 스크립트 실행

저는 Debian 10을 실행하고 있습니다. 부팅 시 FTP 드라이브를 매핑하고 싶습니다. 자체적으로 작동하는 .sh 파일이 있지만 제가 만든 ftpconnect.service를 사용할 때 사용됩니다. 이 사이트 게시물의 도움으로 아무런 생각도 하지 않고 비활성(죽음)으로 표시됩니다.

명령을 실행하면 FTP 드라이브가 매핑되어 사용할 수 있습니다.

/mnt/ftpconnect.sh start

하지만 시스템이 시작되면 시작하고 싶습니다. 경로를 확인하는 동안 드라이브가 연결되지 않은 상태로 매핑되어야 합니다.

networ-online.target, Types=simple, User=Root, WorkingDirectory를 활성화해 보았습니다. 그리고 restart=on-failure를 다시 비활성화했습니다.

아래 파일은 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

.sh 파일은 ftpconnect.sh라고 하며 /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

누구든지 내가 뭘 잘못하고 있는지 알 수 있도록 도와 줄 수 있습니까? 내가 읽은 내용에 따르면 모두 괜찮아 보입니다. 하지만 분명히 내가 뭔가 잘못 생각하고 있는 것 같습니다.

답변1

마이클 햄튼에게 감사드립니다. 이것이 나에게 효과가 있었고 이제 드라이브가 자동 마운트됩니다.

내가 한 방법.

mkdir /mnt/backupdrive    
nano /etc/fstab

추가됨

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

재부팅 후 백업 드라이브에 마운트된 FTP 드라이브를 저장하고 재부팅했습니다.

아래 사항을 추가하지 않으면 네트워크로 인해 시스템이 실패하는 것으로 나타났습니다. 네트워크가 연결되기 전에 실행을 시도했다고 가정합니다.

_netdev

관련 정보