¿Cómo encontrar el nombre del process del server TFTP en ejecución?

Puedo usar el command sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist para iniciar el server TFTP en mac. Pero, ¿cuál es el nombre del process del server TFTP en ejecución?

Intenté ps aux | grep tftp ps aux | grep tftp y pgrep tftp , ninguno me da nada …

Mi objective es usar script para rastrear si el server tftp se ha activado O no …

  • ¿Qué es SimStreamProcessorService?
  • ¿Proceso nombrado después de la ejecución del website?
  • ¿Hay alguna manera de cambiar al process seleccionado en el monitor de actividad?
  • Servicios que usan com.apple.geod
  • Terminal en modo de pantalla completa: cómo me recupero de "cat / dev / random"
  • Mover imágenes con nombres similares a una carpeta con el mismo nombre
  • ¿Cómo mostrar todos los processs en ejecución en macOS / OS X?
  • Desactivar SpeechRecognitionCore
  • 4 Solutions collect form web for “¿Cómo encontrar el nombre del process del server TFTP en ejecución?”

    Escribí un guión para ese propósito si te interesa usarlo. El uso para TFTP sería el siguiente.

     sudo what-listens.sh -p 69 

    Es posible que se sorprenda al descubrir que muestra launchd lugar del process TFTP real. El service necesita ejecutarse para ver el process TFTP real, y launchd probablemente esté administrando ese service.

     #!/bin/bash if [[ "$EUID" -ne 0 ]]; then echo 'This script must be run as root.' 1>&2 exit 1 fi CMD_SUDO='/usr/bin/sudo' CMD_LSOF='/usr/sbin/lsof' CMD_GREP='/usr/bin/grep' function port() { PORT="$1" $CMD_SUDO $CMD_LSOF -n -i4TCP:"$PORT" | $CMD_GREP 'LISTEN' if [[ "$?" -eq 1 ]]; then echo "There is no program listening on port $PORT." fi } function usage() { echo "Usage: $0 [-p,--port <port> ]" } B_NEED_ARG=0 case "$1" in -p|--port) FUNCTION=port B_NEED_ARG=1 ;; *) echo "Error: unknown parameter: '$1'." FUNCTION=usage ;; esac if [[ $B_NEED_ARG -eq 1 ]] ; then if [[ -z "$2" ]] ; then echo "Error: option '$1' requires an argument." usage exit 1 else if ! [[ "$2" =~ ^[0-9]+$ ]]; then echo "Error: argument to '$1' option must be an integer." usage exit 1 fi fi fi ${FUNCTION} "$2" unset CMD_SUDO unset CMD_LSOF unset CMD_GREP unset B_NEED_ARG unset FUNCTION unset PORT 

    Veo que la pregunta fue modificada con …

    Mi objective es usar script para rastrear si el server tftp se ha activado O no …

    La siguiente solución funcionaba para Mavericks, 10.9, y probablemente funcione hasta El Capitán, 10.11.6; pero, en realidad no lo he probado en una Mac con una versión superior a 10.9. Para deshabilitar un service:

     sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.tftpd' -dict Disabled -bool true 

    Luego se puede verificar:

     sudo /usr/libexec/PlistBuddy -c 'print com.apple.tftpd:Disabled' /private/var/db/launchd.db/com.apple.launchd/overrides.plist 

    Si el valor de retorno no es 'verdadero', entonces el service no está deshabilitado.

    La respuesta corta es que no hay un process en ejecución

    Necesitará ver el plist con más detalle (y probablemente lea la documentation de Apple sobre Agentes de lanzamiento y Daemons .

    Lo que hace el plist para tftp es una list de los sockets que escucha el agente.

    Cuando alguien habla con el socket que figura en la list, launchd se dará count de que el progtwig que se incluye en el plist, / usr / libexec / tftpd, es necesario y lo inicia.

    Entonces, hasta que algo hable con el socket, el agente no se está ejecutando y creo que como el agente tiene la intención de ser compatible, lo hará cuando el socket esté cerrado. Cuando el socket esté abierto, se ejecutará un process / usr / libexec / tftpd

    Actualización :

    Como está inspirado en @Christopher, aquí está el script simple y sucio que escribí para satisfacer mis necesidades 🙂

     #!/usr/bin/env python # -*- coding: utf-8 -*- import sys,os my_pid = os.system("sudo lsof -n -i4UDP:69 > /dev/null 2>&1") if len(sys.argv) == 1: if my_pid == 0: print 'TFTP Server is already turned on.' else: print "Parameter (start/stop) is requinetworking to turn on/off TFTP Server!" elif len(sys.argv) > 2: print "Only One Parameter (start/stop) is acceptable!" else: cmdarg = str(sys.argv[1]) if cmdarg == 'start': if my_pid == 0: print 'TFTP Server is already turned on, No Action!' else: os.system("sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist") os.system("sudo chmod 777 /private/tftpboot") print 'TFTP Server been Started.' elif cmdarg == 'stop': if my_pid == 0: os.system("sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist") os.system("sudo chmod 755 /private/tftpboot") print "TFTP Server has been Stopped." else: print "TFTP Server was not Turned on! No Action!" else: print "Correct Parameter (start/stop) is requinetworking!" sys.exit() 

    Para verificar si tftpd está correc- tamente activado, el command es:

     /usr/bin/sudo launchctl list com.apple.tftpd 

    y la salida debería verse así:

     { "Wait" = true; "Sockets" = { "Listeners" = ( file-descriptor-object; file-descriptor-object; ); }; "LimitLoadToSessionType" = "System"; "Label" = "com.apple.tftpd"; "inetdCompatibility" = true; "TimeOut" = 30; "OnDemand" = true; "LastExitStatus" = 0; "Program" = "/usr/libexec/tftpd"; "ProgramArguments" = ( "/usr/libexec/tftpd"; "-i"; "/private/tftpboot"; ); }; 

    Una testing en $? es suficiente para establecer que, desde el punto de vista del sistema, el service se active y se reinicie según sea necesario en una connection externa. Por ejemplo:

     if /usr/bin/sudo launchctl list com.apple.tftpd ; then echo "tftpd is on" else echo "tftpd is off" fi 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).