FTP Daemon Management Script for OS X

FTP Daemon Management Script for OS X

OS X comes with a handy, built-in FTP Server located at /usr/libexec/ftpd which can be easily started from commandline. I prefer it to pureftpd or proftpd.

But the fact is, the program doesn't print any error message or help message even if the arguments are not correct or there was an error starting the FTP server. So I ended up searching into Stackoverflow and found the right command to start the FTP server properly. I created a small script named ftpd that can start, stop and print the status of the FTP daemon. It looks like Ubuntu service scripts. Heh heh!

Take a look at it.

#!/bin/bash

FTPD_PID=$(ps -eo pid,comm | grep '/usr/libexec/ftpd' | awk '{print $1}')

case $1 in
    start)
        sudo /usr/libexec/ftpd -d -D -l -U
        ;;
    stop)        
        if [ -z $FTPD_PID ]
        then
            echo "ftpd is not running"
            exit 1
        fi

        sudo kill -s kill $FTPD_PID
        ;;
    status)
        if [ -z $FTPD_PID ]
        then
            echo "ftpd is not running"
        else
            echo "ftpd is running, pid is $FTPD_PID"
        fi
    ;;
    *)
        echo "Usage: ftpd [start|stop|status]"
        ;;
esac

Install this script to /usr/local/bin or anywhere you like, and chmod +x it.

  • To start the server, run ftpd start.
  • To stop the server, run ftpd stop.
  • To check status of the server, run ftpd status.