Este é o comando inotify-hookablep que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
inotify-hookable - bloqueando a interface de linha de comando para inotify
SINOPSE
Observe um diretório, diga-nos quando as coisas mudam nele:
inotify-hookable --watch-directory / tmp / watch-this
Observe uma árvore git, algumas configurações e um repositório de ativos estáticos, reinicie o servidor da web
ou comprimir esses ativos se alguma coisa mudar:
inotify-hookable \
--watch-directory / etc / uwsgi \
--watch-directory / git_tree / central \
--watch-directory / etc / app-config \
--watch-directory / git_tree / static_assets \
--on-modify-path-command "^ (/ etc / uwsgi | / git_tree / central | / etc / app-config) = sudo /etc/init.d/uwsgi restart" \
--on-modify-path-command "^ / git_tree / static_assets = (cd / git_tree / static_assets && compress_static_assets)"
Ou assista a arquivos específicos:
inotify-hookable \
--watch-files / var / www / cgi-bin / mod_perl_handler \
--on-modify-command "apachectl restart"
DESCRIÇÃO
Este programa de linha de comando simples é meu substituto para a funcionalidade oferecida por
Filesys do Plack :: Notify :: Simple. Descobri que em árvores git muito grandes, Plack gastava um
quantidade desordenada observando o sistema de arquivos para mudanças.
Este programa usa Linux :: Inotify2, então o kernel irá notificá-lo imediatamente quando algo
mudanças (na verdade, é tão rápido que temos que contornar a rapidez com que ele nos envia eventos).
O resultado é que você pode executar isso, por exemplo, em uma sessão de tela e fazer com que ele observe seu
ambiente de desenvolvimento, e seu servidor web terá reiniciado antes de você
deixe o salvar botão.
Os arquivos temporários vim e emacs são ignorados por padrão (veja "--ignore-path".) para que você possa
edite seus arquivos sem reiniciar o servidor desnecessariamente.
Atualmente, a interface de linha de comando para isso é a única que realmente faz sentido,
este módulo está bloqueando totalmente (embora provavelmente pudesse ser executado em outro processo via
POE ou algo assim). Patches bem-vindos.
OPÇÕES
Observe que as opções booleanas podem ser negadas com "--no-OPTION", por exemplo, "--no-r" ou
"--no-recursive" para desligar a opção "--recursive" que está ativada por padrão.
"-C" or "--watch-diretórios"
Especifique isso para monitorar um diretório, você pode fornecer quantas vezes quiser
muitos diretórios.
"-F" or "--watch-files"
Observe um arquivo, especifique várias vezes para vários arquivos. Você pode assistir a arquivos e
diretórios no mesmo comando.
"-r" or "--recursive"
Se você fornecer isso, qualquer diretório fornecido será monitorado recursivamente. Isso está ligado por
padrão.
"-c" or "--on-modify-command"
Um comando que será executado quando algo for modificado.
"-C" or "- comando on-modify-path"
Um par de valores-chave em que a chave é uma regex que corresponderá a um caminho modificado e
o valor é um comando que será executado. Veja o "SINOPSE" para um exemplo.
Útil para, por exemplo, reiniciar um servidor web se você modificar o diretório A mas comprimindo alguns
ativos estáticos se você modificar o diretório B.
"-t" or "--tempo de atraso"
Linux irá enviar a você eventos de notificação clientes rápido, tão rápido que se você executar algo como:
toque na barra de foo
Você pode conseguir um evento para Foo em um lote, seguido por um evento para Barra mais tarde.
Para lidar com isso, entramos em um loop quando começamos a receber eventos e dormir por um padrão de
100 microssegundos, enquanto continuarmos recebendo eventos, continuaremos dormindo por 100 microssegundos,
mas, assim que não recebemos nada novo, disparamos nossos manipuladores de eventos.
"-EU" or "--ignore-path"
Regexes para arquivos / diretórios para ignorar eventos. Por padrão, isso é definido como regexes para
arquivos temporários vim e emacs, "qr {\ .. * sw. \ z}" e "qr {\. \ # [^ /] + \ z}" respectivamente.
As expressões regulares correspondem a qualquer "/" no caminho ou no início da string.
"-d" or "--depurar"
Gaste alguma saída de depuração detalhada durante a execução.
RECONHECIMENTO
Este módulo foi originalmente desenvolvido em e para Booking.com. Com aprovação de
Booking.com, este módulo foi generalizado e colocado no CPAN, para o qual os autores gostariam
para expressar sua gratidão.
Use inotify-hookablep online usando serviços onworks.net