#!/usr/bin/env bash set -e [ "$DEBUG" == 'true' ] && set -x # Generate password if hash not set if [ ! -z "$FTP_PASSWORD" -a -z "$FTP_PASSWORD_HASH" ]; then FTP_PASSWORD_HASH=$(echo "$FTP_PASSWORD" | mkpasswd -s -m sha-512) fi if [ ! -z "$FTP_USER" -a ! -z "$FTP_PASSWORD_HASH" ]; then /add-virtual-user.sh -d "$FTP_USER" "$FTP_PASSWORD_HASH" fi function vsftpd_stop { echo "Received SIGINT or SIGTERM. Shutting down vsftpd" # Get PID pid=$(cat /var/run/vsftpd/vsftpd.pid) # Set TERM kill -SIGTERM "${pid}" # Wait for exit wait "${pid}" # All done. echo "Done" } if [ "$1" == "vsftpd" ]; then trap vsftpd_stop SIGINT SIGTERM echo "Running $@" $@ & pid="$!" echo "${pid}" > /var/run/vsftpd/vsftpd.pid wait "${pid}" && exit $? else exec "$@" fi