Однозначное определение Java обрабатывает с тем же именем

. означает 'текущую строку'. .!fmt делает то, что Вы хотите

4
18.04.2013, 10:23
3 ответа

Во-первых, почему Вы хотите уничтожить какого-либо из них? Если процесс использует слишком много ресурсов, можно просто вложить PID top:

top -n 1

Если они должны быть перезапущены на периодической основе или реагировать на внешние стимулы, используйте управление процессами:

while true
do
    java -jar MyApp.jar &
    my_app_pid=$!
    while ! whatever_makes_me_think_my_app_should_be_restarted
    do
        sleep 60
    done
    kill $my_app_pid
done
3
27.01.2020, 21:06
  • 1
    , у меня есть много процессов, которые имеют сценарии управления в /etc/init.d/ который я могу просто сказать stop, start, restart. Я недавно развернул новый, который снова использовал существующее jar и но это уничтожает неправильный процесс. Предоставленная ссылка управления процессами показывает мне, что я, вероятно, делаю все это неправильно, но я должен вписаться в систему, или по крайней мере, легче, если я делаю, даже если это не идеально. Хм, люди и процессы... это - проблема XY. –  Peter Wood 17.04.2013, 14:22
  • 2
    Мой коллега помог мне решить это. Мы теперь передаем уникальное системное свойство java использование -D, и мы можем восстановить это с a grep. Мне нравятся оба главные ответы, поскольку Вы оба помогли мне по-разному. Ваш был более образовательным, другой больше на задаче. Я люблю подвергать сомнению причину проблемы также и ценю Вас надевающий это на меня. –  Peter Wood 17.04.2013, 16:02

Изменение параметров имеет значение к приложению таким образом, это не лучшая идея. Вы могли измениться на 0$ т.е. само название программы. Большинство программ не заботится об этом, но некотором изменении о своем поведении на основе того (например, если можно назвать тот же двоичный файл различными именами как IIRC с mtools и busybox):

bash -c 'exec -a mysleep sleep 100'
ps aux | grep sleep
hl       20818  0.0  0.0   5732   576 pts/10   S+   10:01   0:00 mysleep 100

или Вы используете среду:

bash -c 'IDSTRING=PROC1 exec sleep 100'
PID=20936
tr '\0' '\n' </proc/"$PID"/environ | grep IDSTRING
IDSTRING=PROC1

или Вы запускаете процесс со сценария обертки, который пишет PID и дополнительную информацию (для сообщения процессов независимо) в файл журнала.

2
27.01.2020, 21:06

Единственный путь, который может помочь, состоит в том, чтобы определить большее количество PID.. чем больший, тем позже выполнил процесс.. НО НЕ ВСЕГДА

-5
27.01.2020, 21:06
  • 1
    я выполняю сервер и процессы, запускается и останавливается неоднократно различными людьми. Я не знаю, который будет более свежим. –  Peter Wood 17.04.2013, 11:32
  • 2
    Как можно требовать чего-нибудь, что является так, очевидно, неправильно? –  Hauke Laging 17.04.2013, 11:35

Теги

Похожие вопросы