status -p $pidfile -l $lockfile $prog
Essa é a função status()
do shell de /etc/rc.d/init.d/functions
no RHEL / CentOS 6. Ela também é conhecida como statusproc()
no mundo Linux From Scratch .
Isso nos diz que você está fazendo coisas muito erradas. Você está combinando as funções auxiliares de shell especiais disponíveis para uso nos scripts System 5 rc
com comandos externos de shell interativos comuns. Você está escrevendo scripts System 5 rc
no Ubuntu. E você está usando arquivos PID e arquivos de bloqueio.
- Não use arquivos PID como rastreamento de serviço do homem pobre. Não use arquivos de bloqueio como intertravamento de serviço do homem pobre. Eles são totalmente desnecessários nas versões 14 e 15 do Ubuntu Linux, que têm upstart e systemd, respectivamente. Eles não precisam de arquivos PID instáveis e arquivos de bloqueio. Tanto o systemd quanto o upstart garantem que não se inicie um único serviço duas vezes, e os dois controlam adequadamente os IDs do processo dos processos de serviço, porque eles, em primeiro lugar, bifurcaram esses processos. O que me leva a:
-
Não escreva os scripts System 5
rc
no Ubuntu Linux. Na versão 14, um já tinha upstart; e na versão 15 um agora tem systemd, assim como no CentOS 7, RHEL 7 e Debian 8. Não há uma boa razão para escrever scripts System% 5% no Ubuntu Linux por um longo tempo. E um certamente não deve começar a partir daí se alguém estiver vindo para o Ubuntu Linux novamente. Mesmo se você estiver começando por aí porque está (erroneamente) tentando trazer scripts do System 5rc
através do CentOS: -
Não confie na função
rc
do shell nos sistemas operacionais ou mesmo nas versões do mesmo sistema operacional. Conforme observado, é diferentemente nomeado no LFS. Ele não está nas "novas" funções de suporte LSB do Fedora a partir de 2009. Não há nem mesmo uma ação de script obrigatóriastatus()
System 5status
no Manual de Políticas Debian em primeiro lugar, embora o A biblioteca de funções auxiliares do LSB tem uma função de ajuda (sutilmente diferente)rc
.
Escreva um "arquivo de trabalho" upstart para o Ubuntu versão 14, ou uma "unidade de serviço" systemd para CentOS 7, RHEL 7, Debian 8 ou Ubuntu 15. Ambos upstart e systemd fornecem comandos de status de serviço: status_of_proc()
(com um simples shim chamado apenas initctl status
) e status
, respectivamente. Para apoiá-los em um arquivo de trabalho ou uma unidade de serviço você não precisa fazer nada .
Leitura adicional
- link
- FC New Init . 2009. Wiki do Projeto Fedora.
-
"
systemctl status
function" . Embalagem: SysVInitScript . 2008. Wiki do Projeto Fedora. - link
- link
- Lennart Poettering (2013-10-07).
status
. páginas de manual do systemd. freedesktop.org. - James Hunt e Clint Byrum (2014). "Utilitários" . Cookbook Upstart .