Версия для Linux: CentOS 7

[weizhong@bja /tmp]
$ll apis_response_time_analysis.pid 
-rw-r--r-- 1 weizhong users 5 Jan 22 09:40 apis_response_time_analysis.pid

[weizhong@bja /tmp]
$cat apis_response_time_analysis.pid 
20795

[weizhong@bja /tmp]
$sudo ps -ef | grep 20795
weizhon+ 24876  9196  0 11:41 pts/2    00:00:00 grep --color=auto 20795

Я не могу найти PID, но я попытался убить его с помощью своей учетной записи. Тем не менее, он сказал, что операция не разрешена, а не такой процесс

[weizhong@bja /tmp]
$kill -9 20795
-bash: kill: (20795) - Operation not permitted

[weizhong@bja /tmp]
$kill -9 20795123   <--- a pid not exists
-bash: kill: (20795123) - No such process

затем я попытался убить его с помощью sudo , я выполнил

[weizhong@bja /tmp]
$sudo kill 20795    <-- no output

[weizhong@bja /tmp]
$sudo kill -9 20795
kill: sending signal to 20795 failed: No such process

Затем я снова выполнил свой аккаунт

[weizhong@bja /tmp]
$kill 20795
-bash: kill: (20795) - No such process

Я уверен, что pid 20795 генерируется моей учетной записью. В настоящее время я не могу найти 20795, но когда я его убиваю, возвращаю Operation not permitted вместо No such process , я хочу знать, почему и почему мой процесс должен быть убит sudo

2 ответа2

1

Обратите внимание на ваш ps -ef | grep 20795 вернул только сам grep - совпадение было с командной строкой, а не с PID . Не было процесса с указанным вами PID .

Я предполагаю, что число могло быть неправильным. Вероятно, он совпадает с чьим-либо еще идентификатором потока, и таким образом sudo kill уничтожил весь чужой процесс, который был не тем, что вы хотели.

1

Вы не являетесь владельцем процесса, который пытаетесь убить. Это является причиной как вывода ps котором не указан процесс 20795 (см. Ответ @ kamil-maciorowski), так и требования sudo для уничтожения 20795.

Вы можете использовать ps aux для вывода списка всех процессов, включая те, которые вам не принадлежат. Вы также можете использовать аргумент -p чтобы показать конкретный процесс, который лучше всего соответствует вашим потребностям:

ps -up 20795

Вы увидите что-то вроде этого:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
foo      20795  0.0  0.0  14728  1888 tty3     Ss+  12:03   0:00 bar

Я предполагаю, что пользователь будет пользователем root (с повышенными правами) или, возможно, другим конкретным системным пользователем. Затем вам нужно sudo чтобы убить процесс, который вам не принадлежит. И вам удастся убить его. Пустой ответ для sudo kill 20795 говорит, что это сработало.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .