Mogę użyć polecenia, sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
aby uruchomić serwer TFTP na komputerze Mac. Ale jaka jest nazwa procesu działającego serwera TFTP?
Próbowałem ps aux | grep tftp
i pgrep tftp
nic mi nie dało ...
Moim celem jest użycie skryptu do śledzenia, czy serwer tftp został włączony LUB nie ...
command-line
macos
m1xed0s
źródło
źródło
Odpowiedzi:
Napisałem skrypt w tym celu, jeśli chcesz go użyć. Wykorzystanie TFTP byłoby następujące.
Możesz być zaskoczony, gdy zobaczysz, że pokazuje on
launchd
zamiast faktycznego procesu TFTP. Usługa musi być uruchomiona, aby zobaczyć rzeczywisty proces TFTP ilaunchd
prawdopodobnie zarządza tą usługą.Widzę, że pytanie zostało zmodyfikowane za pomocą ...
To rozwiązanie działało do Mavericks, 10.9 i prawdopodobnie działa do El Capitan, 10.11.6; ale tak naprawdę nie próbowałem tego na komputerze Mac z wersją wyższą niż 10.9. Aby wyłączyć usługę:
Następnie można to sprawdzić:
Jeśli zwracana wartość nie jest „prawdziwa”, usługa nie jest wyłączona.
źródło
Krótka odpowiedź brzmi: nie ma uruchomionego procesu
Musisz spojrzeć bardziej szczegółowo na listę (i prawdopodobnie przeczytać dokumentację Apple na temat agentów uruchamiania i demonów .
Plist dla tftp zapewnia listę gniazd nasłuchiwanych przez agenta.
Gdy ktoś porozmawia z gniazdem wymienionym na liście uruchomieniowej, zda sobie sprawę, że potrzebny jest program wymieniony na liście, / usr / libexec / tftpd i go uruchomi.
Więc dopóki coś nie odezwie się do gniazda, agent nie działa i myślę, że ponieważ agent jest zgodny, będzie krzyczeć, gdy gniazdo zostanie zamknięte. Gdy gniazdo jest otwarte, uruchomiony zostanie proces / usr / libexec / tftpd
źródło
lsof
, jak pokazano w skrypcie opublikowanym przez ChristopheraAktualizacja :
Inspirowany przez @Christopher, oto prosty i brudny skrypt, który napisałem, aby spełnić moje potrzeby :)
źródło
Aby sprawdzić, czy
tftpd
jest poprawnie aktywowane, polecenie to:a wynik powinien wyglądać następująco:
Test włączony
$?
jest wystarczający, aby stwierdzić, że z punktu widzenia systemu usługa jest aktywowana i w razie potrzeby zostanie ponownie uruchomiona przed połączeniem zewnętrznym. Na przykład:źródło
TFTPD jest usługą, co oznacza, że plik wykonywalny jest uruchamiany na żądanie, gdy nawiązywane jest połączenie przychodzące. Aby sprawdzić, czy komputer Mac zareaguje, tj. Czy usługa TFTPD jest aktywna, możesz użyć następującego polecenia w skrypcie Terminal lub powłoki. Pamiętaj, że uprawnienia administratora nie są potrzebne dla tego typu zapytań:
Spowoduje to wygenerowanie wyniku konfiguracji, jeśli usługa jest aktywna w następujący sposób:
lub błąd taki jak ten:
Co oznaczałoby, że usługa nie została uruchomiona lub nie można jej uruchomić. Jeśli wszystko, co Cię interesuje, to stan uruchomiony / niedziałający, wówczas najłatwiej jest sprawdzić komunikat o błędzie lub zwrócony niezerowy poziom błędu. Poziom błędu 0 oznacza, że usługa TFTPD jest aktywna, wartość niezerowa oznacza, że nie jest aktywna. Na przykład, jeśli uruchomiona aplikacja nie jest ładowana przy wszystkich poziomach błędu, zwracany jest numer 113, co oznacza: „Nie można znaleźć określonej usługi”
źródło