Алиас для /etc/init.d/… restart
Устал я писать каждый раз строки вида «sudo /etc/init.d/nginx restart» для перезапуска многочисленных серверов, поэтому сделал себе короткий алиас. Я бы не упомянул об этом, если бы не два отличия.
Вот что получилось (у меня это в .bashrc):
rst () { command sudo /etc/init.d/$@ restart; }
function _rst() {
local cur
cur=${COMP_WORDS[COMP_CWORD]}
if [ 1 -eq ${COMP_CWORD} ]; then
COMPREPLY=( $(compgen -f -- /etc/init.d/$cur | xargs -n1 basename -- ) )
else
COMPREPLY=()
fi
}
complete -F _rst rst
Комментарии 16
@echo off
set _=C:\nginx
pskill nginx.exe
ping -n 2 127.0.0.1 >nul
rem обязательно в текущей папке запускать, по полному пути запуск лажает
%_:~0,2%
cd %_%
start nginx.exe
не силён в линуксах, но если cron может следить за изменением файлов как и виндовый nncron, то перезапуск nginx можно сделать слежкой за спецфайлом в шаре (smb). Если серверов для перезапуска 1000 шт., можно каждому на шару положить файл со специальным пустым (или нет) файлом, чтобы следящий за ним cron сделал
Я не один на сервере, поэтому перезапускать надо вручную.
*sudo /etc/init.d/nginx restart*
ну кто так делает?
ps ax | grep master
kill -HUP
ну. можно конечно и в одну строку записать, но лень и все такое.
1) service быстрее набирается чем череда из слешей.
2) reload — перечитывает конфиг без потери клиентов. В случае ошибки откатывается на старый.
Я знаю что такое reload, но меня это не заботит, на продакшне никто сервер руками не рестартует (кроме исключительных случаев), а на девелопменте мне нужен как раз restart, чтобы была одна команда на всё — измнение конфига, установку новой или альтернативной версии, сброс при утечках и т.д.
Кроме того, не один nginx надо рестартить («многочисленные сервера» в заметке это не «многочисленные nginx»), вот пример:
Usage:
Ага, мне наши рассказали, что это в Lucid появилось. А мы так давно на него перешли (ещё есть машины, которые на Hardy).
А для Z SHELL этот скриптик покатит?