Uruchomę plik wykonywalny serwera w Centos, używając następującego polecenia: "nohup server &"
. Teraz muszę zabić proces "server"
. Ale próbowałem polecenia "ps -a"
, aby uzyskać PID
, ale nie mogłem uzyskać proces. Jak teraz zabić "server"
?Znajdź proces uruchamiany komendą nohup
Odpowiedz
ps auxwww|grep -i 'server'
powinien zwrócić cały proces, który ma server
w nich. W przeciwnym razie serwer mógł już zostać zatrzymany.
Powinieneś być w stanie określić PID (i przechowywać go w pliku) w następujący sposób:
nohup server &
print $! >> my_server.pid
Dzięki za odpowiedź. – 2vision2
Najlepszym sposobem na uruchomienie serwera w centach jest komenda service.
Więc service httpd start
Jest szansa, że chcesz napisać swój program jako demon
demon (lub usługi) jest to proces w tle, który jest przeznaczony do uruchamiania autonomicznie, z mało interwencji użytkownika. Demon serwera http Apache web (httpd) jest jednym z takich przykładów demona. Czeka ona na przesłuchanie w tle na określonych portach i obsługuje strony lub przetwarza skrypty w oparciu o typ żądania.
Zobacz http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html
Nie ma ostateczny sposób, aby złapać dokładny proces przy pomocy polecenia ps
, ale można użyć następujących:
ps -a | grep "server"
dostaniesz listę wszystkich procesów uruchomionych z nazwą „serwer”
Albo można użyć innych słów kluczowych, jak również do gr ep wynik ps.
Dzięki za odpowiedź. – 2vision2
Jeśli donohup.out plik został utworzony, można uruchomić w bash:
# lsof nohup.out
zwróci PID który utworzył/pracuje plik
pozdrawiam!
ps auxwww | grep -i 'server' powinien zwrócić cały proces, który ma w sobie "serwer". W przeciwnym razie serwer mógł już zostać zatrzymany. –
ps aux | grep server – Mikhail
@Usman saleem dzięki temu rozwiązuje moją odpowiedź. Mam jeszcze jedną wątpliwość "nohup server &" jest właściwym poleceniem, aby uruchomić proces backgroung nawet jeśli zamknę terminal? – 2vision2