4.5 Unixサービスの使用によるデーモンの管理
RPMパッケージを使用してSQLclをインストールした場合は、それに、複数のユーザーのSQLclスケジューラ・デーモンを一元的に管理するsystemdサービス(sql-schedulerという名前)が含まれます。このサービスでは、特定のUnixグループに属するすべてのユーザーのデーモンが管理されます。
sql-schedulerという名前のUnixグループは、それがシステムに存在しない場合は作成されます。oracleユーザー・アカウントは、それが存在しない場合は作成されます。また、それがsql-schedulerグループに追加されます。
sql-schedulerグループに他のユーザーを追加した場合は、そのスケジューラ・デーモンが、systemdサービスによって自動的に管理されます。
ノート:
このsystemdサービスでは、sql-schedulerグループ内のユーザーのみが管理されます。他のユーザーは、sql -daemonコマンドを使用して各自のデーモンを手動で管理する必要があります。
4.5.1 rootユーザーとしてのサービスの管理
SQLcl RPMパッケージをインストールし、必要なすべてのユーザーがsql-schedulerグループに含まれていることを確認した後、特権ユーザー(rootなど)は、そのサービスを管理して、それらのユーザー用のデーモンの起動と停止を一元的に制御できます。
この例では、rootユーザーとしてサービスを管理してoracleユーザーのスケジューラ・デーモンを制御する方法を示します。
oracleユーザーのグループの確認
oracleユーザーがsql-schedulerグループに含まれていることを確認します。
[root@oracledb23ia ~]$ groups oracle
oracle : oracle oinstall .... sql-scheduler
sql-schedulerサービスのステータスの確認
sql-schedulerサービスがインストールされていることを確認します。
[root@oracledb23ia ~]$ systemctl status sql-scheduler
sql-scheduler.service - SQLcl scheduler services
Loaded: loaded (/etc/systemd/system/sql-scheduler.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Jun 09 13:02:57 oracledb23ia.localdomain systemd[1]: Started SQLcl scheduler services.サービスの開始
sql-schedulerサービスを実行してsql-schedulerグループ内のすべてのユーザー(この場合は、oracleユーザーのみ)のスケジューラ・デーモンを起動します。
[root@oracledb23ia ~]$ systemctl start sql-scheduler
[root@oracledb23ia ~]$ systemctl status sql-scheduler
sql-scheduler.service - SQLcl scheduler services
Loaded: loaded (/etc/systemd/system/sql-scheduler.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2025-06-09 13:39:06 CST; 2min 29s ago
Process: 3832 ExecStart=/usr/bin/bash -c /etc/init.d/sql-scheduler start (code=exited, status=0/SUCCESS)
Main PID: 3938 (java)
Tasks: 0 (limit: 36046)
Memory: 64.0K
CGroup: /system.slice/sql-scheduler.service
サービス・ログの確認
サービス・ログを表示するには、journalctlコマンドを使用します。oracleユーザー用の関連するすべてのログ、スケジュール構成ファイルおよびランタイム・データは、/home/oracle/.dbtools/schedules内に配置されます。
[root@oracledb23ia ~]# journalctl -a -f -u sql-scheduler
Jun 09 13:31:57 oracledb23ia.localdomain systemd[1]: sql-scheduler.service: Succeeded.
Jun 09 13:31:57 oracledb23ia.localdomain systemd[1]: Stopped SQLcl scheduler services.
Jun 09 13:39:02 oracledb23ia.localdomain systemd[1]: Starting SQLcl scheduler services...
Jun 09 13:39:02 oracledb23ia.localdomain bash[3842]: Starting the SQLcl Scheduler Daemon.
Jun 09 13:39:02 oracledb23ia.localdomain bash[3849]: Starting the SQLcl Scheduler Daemon for user oracle.
.....
サービスの停止
管理対象ユーザー(たとえば、oracleユーザー)のスケジューラ・デーモンを停止します。
[root@oracledb23ia ~]# systemctl stop sql-scheduler
[root@oracledb23ia ~]# journalctl -a -f -u sql-scheduler
Jun 09 13:39:04 oracledb23ia.localdomain bash[4065]: The SQLcl Scheduler Daemon has started correctly.
Jun 09 13:39:06 oracledb23ia.localdomain systemd[1]: Started SQLcl scheduler services.
Jun 09 14:07:24 oracledb23ia.localdomain systemd[1]: Stopping SQLcl scheduler services...
Jun 09 14:07:24 oracledb23ia.localdomain bash[4497]: Stopping the SQLcl Scheduler Daemon.
Jun 09 14:07:24 oracledb23ia.localdomain bash[4504]: Stopping SQLcl Scheduler Daemon for user oracle