skrypt Linuksa do zabicia procesu Javy
Chcę, aby skrypt Linuksa zabił program java działający na konsoli.
Poniżej znajduje się proces uruchomiony jako jar.
[rapp@s1-dlap0 ~]$ ps -ef |grep java
rapp 9473 1 0 15:03 pts/1 00:00:15 java -jar wskInterface-0.0.1-SNAPSHOT-jar-with-dependencies.jar
rapp 10177 8995 0 16:00 pts/1 00:00:00 grep java
[rapp@s1-dlap0 ~]$
4 answers
Możesz po prostu użyć pkill -f
w następujący sposób:
pkill -f 'java -jar'
EDIT: aby zabić konkretny proces java uruchamiający Twój specyficzny jar użyj tego polecenia pkill opartego na regex:
pkill -f 'java.*lnwskInterface'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-05 17:00:50
Jeśli chcesz tylko zabić dowolny / wszystkie procesy Javy, to wszystko czego potrzebujesz to;
killall java
Jeśli jednak chcesz zabić proces wskInterface w szczególności, to jesteś tam w większości przypadków, wystarczy rozebrać identyfikator procesu;
PID=`ps -ef | grep wskInterface | awk '{ print $2 }'`
kill -9 $PID
Powinien to zrobić, prawdopodobnie jest łatwiejszy sposób...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-04 21:08:56
Użyj jps , aby wyświetlić listę uruchomionych procesów Javy. Polecenie zwraca ID procesu wraz z klasą główną. Możesz użyć polecenia kill, aby zabić proces o zwracanym id lub użyć jednego skryptu liner.
kill $(jps | grep <MainClass> | awk '{print $1}')
MainClass jest klasą w uruchomionym programie java, która zawiera główną metodę.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-08 20:02:44
Pkill-f z jakiegokolwiek powodu nie działa dla mnie. Cokolwiek to robi, wydaje się bardzo wybredne w tym, co pokazuje mi ps aux wyraźnie tam jest.
Po popołudniowym przeklinaniu poszedłem do umieszczenia w skrypcie startowym:
(ps aux | grep -v -e 'grep ' | grep MainApp | tr -s " " | cut -d " " -f 2 | xargs kill -9 ) || true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-30 14:47:59