サービスコマンドがサービスファイルを認識しません。 RHEL6.9

サービスコマンドがサービスファイルを認識しません。 RHEL6.9

rhel6.9マイサービスファイルをフォルダ/etc/systemd/systemに使用してコピーしています/usr/lib/systemd/system/。以前はセットアップサービスを使用したことがありますが、systemctloldschoolserviceコマンドを使用したことはありません。

今はservice mytest start動作しません。認識できないサービスと表示されます。systemctl走っているのにdaemon-reloadどうすればいいですかservice

答え1

service
さまざまなUnixおよびLinuxでサービスの開始、再起動、停止、およびステータスサービスに使用される「詳細」コマンド。 「サブレベル」サービスマネージャに応じて、サービスは別のバイナリにリダイレクトされます。

たとえば、CentOS 7ではリダイレクトされ、systemctlCentOS 6は相対/etc/init.dスクリプトを直接呼び出します。一方、以前のUbuntuバージョンでは開始にリダイレクトされます。

サービスは基本的なサービス管理に十分であり、ダイレクトコールはsystemctl より多くの制御オプションを提供します。

RHEL6では、まずサービスを追加します。

chkconfig --add SERVICE

次に、有効または無効にします。

chkconfig SERVICE on
chkconfig SERVICE off

サービスが有効になっていることを確認してください。

chkconfig SERVICE --list 

RHEL7以降でこのようなサービスをオンにして、次の起動または他のトリガから起動することもできます。

systemctl enable SERVICE

systemctl維持する場合、すべての最新バージョンは「.service」と見なされます。

/etc/systemd/system/lircmd.service

になる:

systemctl enable lircmd

また、Systemd過去に使用したすべてのタスクをchkconfig1つのserviceコマンドにインポートするため、通常はsystemctl長期的に処理する方が簡単です。

また見てくださいman update-rc.d

update-rc.d すべてのスクリプトのスクリプトLSBコメントヘッダーに依存runlevel関係と情報を提供する必要があります。init.dinit.d

ここのように:

スクリプトに次のブロックを追加しますinit.d

### 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


serviceコマンドは、システム管理者がinit使用している実際のシステムを心配することなくサービスを開始、停止、および確認できるラッパースクリプトです。 systemdが導入される前は/etc/init.dスクリプトとUpstartコマンドのラッパーでしたが、initctl今は両方と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).

また見なさい:

systemd-and-systemctl-in-linux/ を使用したサービス管理

源泉:

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

サービス対systemctlスクリプト - 使用するスクリプト

https://wiki.debian.org/LSBInitScripts

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

関連情報