Я предложил бы использовать nss-myhostname. Это - nss плагин, который просто всегда разрешает Ваше текущее имя хоста, таким образом, нет никакой потребности изменить /etc/hosts
.
Поскольку проблемой, которую Вы описываете, является просто проблема сопоставителя, можно зафиксировать ее при наличии надлежащей установки DNS, т.е. ourwebsiteLIVE.$DOMAIN
просто твердость к IP машины.
pidof = найти идентификатор процесса запущенной программы
Pidof находит идентификаторы процесса (pid) названных программ. Он выводит этих идентификаторов на стандартный вывод. Эта программа в некоторых системах используется в сценариях изменения на уровне выполнения, особенно когда система имеет структуру rc, подобную System-V.
sysadmin@codewarden:~$ pidof apache2
5098 5095 5094 5092
pgrep = искать или сигнализировать о процессах на основе имени и других атрибутов, pgrep просматривает текущие запущенные процессы и перечисляет идентификаторы процессов, которые соответствуют критериям выбора.
sysadmin@codewarden:~$ pgrep apache2
5092
5094
5095
5098
pgrep
, (p) = process, grep
= grep печатает совпадающие строки
Хотите узнать больше о pgrep и pidof? Просто запустите в терминале как
# man pidof
# man pgrep
Я думаю, вам не следует полагаться на pidof
, это может привести к сбою вашей программы. Простой пример с программой supervisord
:
% cuonglm at ~
% ps -ef | grep supervisord
root 8512 1 0 16:53 ? 00:00:00 /usr/bin/python /usr/bin/supervisord
cuonglm 8584 7688 0 17:00 pts/0 00:00:00 grep --color=auto supervisord
% cuonglm at ~
% pidof supervisord
% cuonglm at ~
%
Как видите, супервизор
на самом деле вызывается интерпретатором python, вызывает сбой pidof
:
#! /usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'supervisor==3.0a8','console_scripts','supervisord'
__requires__ = 'supervisor==3.0a8'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('supervisor==3.0a8', 'console_scripts', 'supervisord')()
)
Команда pidof
игнорирует сценарии, если вы не включили параметр -x
.
Кроме того, безопаснее всего включить полный путь в команду pidof, как в :
killme=$(pidof -x /usr/bin/supervisord)
*instead of*
killme=$(pidof -x supervisord)
это сводит к минимуму вероятность совпадения с каким-либо другим процессом.