Аххое !!! Наконец-то получил мой ответ. аннотация: "nginx.ingress.kubernetes.io/rewrite-target: /" Я делал аннотацию, но отсутствует "nginx". в начале, который был единственной причиной ошибки и занял весь мой день. Цель этой строки - фактически перенаправить в root с любого маршрута, который мы пишем перед curl. Поскольку root - это место, где обычно у нас есть точка входа, то есть index.html в моем случае.
Вы упомянули использование Linux. Это не самое чистое решение, но можно пройти каждую запись в/proc и проверить имя процесса в cmdline против того, что Вы ищете.
Используйте sysctl - Пример кода
РЕДАКТИРОВАНИЕ - это доступно в Linux, посмотрите здесь
Чтения Procfs являются очень дешевыми, многие люди думают об итерации через/proc как, они были бы, выполняя итерации через/, действительно не случай вообще.
Сэкономьте некоторое время путем пропуска любой записи, которая находится под 1000, нет никакого смысла в исследовании потоков ядра. Так, в основном.. после opendir (), если strtoint () думает, запись является интервалом, и что интервал больше, чем или равен 1 000, просто считайте/proc / % d/stat.
Старайтесь избегать желания просто разрешить ссылку 'exe', поскольку это не собирается говорить Вам состояние процесса, который будет получать сигнал. Например, если бы цель находится в 'D' состояния (дисковый сон), Вы хотели бы знать, поскольку сигнал не будет сразу поставлен, или возможно никогда, если состояние D будет постоянным.
В большинстве систем, там будет 70 - 120 процессами для исследования, и Вы будете часто находить свой целевой путь прежде, чем достигнуть конца.
Это, кажется, хорошо работает для меня.
Вы могли бы хотеть дать полный путь процесса, хотя, чтобы Вы не уничтожаете процесс, который имеет аналогичное имя.
Основное преимущество этого состоит в том, что можно указать сигнал, что Вы хотите отправить.
system("killall -s 9 process_name");
Вы упоминаете: «Один из способов, который я мог придумать, - это отправить запрос сокета этому процессу и запросить его PID». Похоже, что процесс, который вы пытаетесь убить, - это программа, которую вы написали.
Если это так, каноническим решением будет сохранить pid в файле (обычно в / var / run, если у вас есть доступ к it) во время работы программы и удалите файл при выходе из программы. Таким образом, определить, запущена программа или нет, так же просто, как
if kill -0 $(cat /var/run/myprog.pid 2>/dev/null) 2>/dev/null; then
echo Running!
else
rm -f /var/run/myprog.pid
echo "Not running."
end
Тщательное изучение всех последствий приведенного выше кода, вероятно, научит вас многому о том, как работают файлы PID. Или вы можете просто попросить более подробное объяснение.