O comando service não reconhece o arquivo de serviço. RHEL6.9

O comando service não reconhece o arquivo de serviço. RHEL6.9

Estou usando rhel6.9e copiei meu arquivo de serviço para as pastas /etc/systemd/systeme /usr/lib/systemd/system/. Eu configurei serviços systemctlantes, mas nunca tentei com o servicecomando oldschool.

Agora, service mytest startnão funciona, diz que é um serviço não reconhecido. Você systemctlcorre daemon-reload, mas como faço isso com service?

Responder1

serviceé um comando de "alto nível" usado para iniciar, reiniciar, parar e
serviços de status em diferentes Unixes e Linuxes. Dependendo do gerenciador de serviços de "nível inferior", o serviço é redirecionado para diferentes binários.

Por exemplo, no CentOS 7 ele redireciona para systemctl, enquanto no CentOS 6 chama diretamente o /etc/init.dscript relativo. Por outro lado, em versões mais antigas do Ubuntu ele redireciona para o upstart.

O serviço é adequado para o gerenciamento básico de serviços, enquanto a chamada direta systemctl oferece maiores opções de controle.

No RHEL6 você primeiro adiciona o serviço:

chkconfig --add SERVICE

então para ativar ou desativar:

chkconfig SERVICE on
chkconfig SERVICE off

Verifique se o serviço está habilitado:

chkconfig SERVICE --list 

Você também pode no RHEL7 e superior ativar o serviço assim para iniciar na próxima inicialização ou outro gatilho:

systemctl enable SERVICE

Observe que todas as versões recentes systemctlassumem o ".service" se forem deixadas desativadas.

/etc/systemd/system/lircmd.service

Torna-se:

systemctl enable lircmd

Também Systemdtraz tudo o que você costumava fazer com chkconfige servicesob um comando, systemctlentão geralmente acho isso mais fácil de lidar no longo prazo.

Veja também man update-rc.d:

update-rc.d requer que dependência e runlevelinformações sejam fornecidas no init.dcabeçalho de comentário LSB do script de todos init.dos scripts.

Como aqui:

Adicione um bloco como este no init.dscript:

### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

https://wiki.debian.org/LSBInitScripts


O comando de serviço é um script wrapper que permite aos administradores do sistema iniciar, parar e verificar o status dos serviços sem se preocupar muito com o initsistema real que está sendo usado. Antes da introdução do systemd, ele era um wrapper para /etc/init.dscripts e comandos do Upstart initctl, e agora é um wrapper para esses dois e também para o systemctl.

man service:

service(8)                                                                                              System Manager's Manual                                                                                              service(8)

NAME
       service - run a System V init script

SYNOPSIS
       service SCRIPT COMMAND [OPTIONS]

       service --status-all

       service --help | -h | --version

DESCRIPTION
       service runs a System V init script, systemd unit, or upstart job in as predictable an environment as possible, removing most environment variables and with the current working directory set to /.

       The SCRIPT parameter specifies a System V init script, located in /etc/init.d/SCRIPT, or the name of a systemd unit, or the name of an upstart job in /etc/init. The existence of a systemd unit or upstart job of the same name
       as a script in /etc/init.d will cause the unit/job to take precedence over the init.d script.  The supported values of COMMAND depend on the invoked script.  service passes COMMAND and OPTIONS to the init script  unmodified.
       For  systemd  units  or upstart jobs, start, stop, status, and reload are passed through to their systemctl/initctl equivalents. For upstart jobs, restart will call the upstart 'stop' for the job, followed immediately by the
       'start', and will exit with the return code of the start command.

       All scripts should support at least the start and stop commands.  As a special case, if COMMAND is --full-restart, the script is run twice, first with the stop command, then with the start command. This option has no  effect
       on upstart jobs.

       service  --status-all  runs  all  init  scripts,  in alphabetical order, with the status command.  The status is [ + ] for running services, [ - ] for stopped services and [ ? ] for services without a 'status' command.  This
       option only calls status for sysvinit jobs; upstart jobs can be queried in a similar manner with initctl list.

EXIT CODES
       service calls the init script and returns the status returned by it.

FILES
       /etc/init.d
              The directory containing System V init scripts.

       /etc/init
              The directory containing upstart jobs.

       /{lib,run,etc}/systemd/system
              The directories containing systemd units.

ENVIRONMENT
       LANG, LANGUAGE, LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT, LC_IDENTIFICATION, LC_ALL, TERM, PATH
              The only environment variables passed to the init scripts.

SEE ALSO
       /etc/init.d/skeleton,
       update-rc.d(8),
       init(8),
       invoke-rc.d(8).
       systemctl(1).
       initctl(8).

Veja também:

gerenciar-serviços-usando-systemd-and-systemctl-in-linux/

Fontes:

https://askubuntu.com/questions/903354/difference-between-systemctl-and-service-commands

https://stackoverflow.com/questions/43537851/difference-between-systemctl-and-service-command

http://www.safdar.com/how-to/linux-services-systemctl-systemd-vs-service-sysvinit.html

scripts de serviço vs. systemctl - quais usar

https://wiki.debian.org/LSBInitScripts

https://access.redhat.com/articles/1189123

informação relacionada