launchd uses UDP port 69. Why? [duplicate]

Solution 1:

These steps solved my problem

  1. Reload plist

    sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
    sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
    
  2. (Re)enable service

    sudo launchctl disable system/com.apple.tftpd
    sudo launchctl enable system/com.apple.tftpd
    
  3. Start service (or restart)

    sudo launchctl start com.apple.tftpd
    

Thank you everyone who participated in discussion, especially @Prado

Solution 2:

Your question is why launchd uses UDP port 69. This is basically because you've just told it to do so in the plist file, you've quoted in your question. If you're not used to launchd or similar programs on Unix-systems, it might seem counterintuitive - but this is how things are supposed to work.

Basically launchd does not start the tftpd server program at boot or when you login. Instead it opens port 69 and waits for someone to actually contact the tftp service - only when it is actually going to be used by someone, launchd starts the tftpd server program and hands over the traffic to that program.

Therefore it is as intended that port 69 is in use by launchd.