среда, 20 сентября 2017 г.

Запуск db2 Ubuntu 17.10 через rc.local

How can I execute command on startup (rc.local alternative) on Ubuntu 16.10
Как автоматически перезапустить экземпляры DB2 через монитор сбоя DB2

На ubuntu 17.10 запустить приведенным ниже способом не удается:

$ sudo nano  /lib/systemd/system/db2fmcd.service

1. После перезагрузки компьютера не стартует DB2. Если коротко: это происходит потому, что не запускается DB2 Fault Monitor Coordinator.  Настроим systemd для его запуска. Для этого в /usr/lib/systemd/system/ создал файл db2fmc.service со следующим содержимым:
[Unit]
Description=DB2V11122

[Service]
#ExecStart=/opt/ibm/db2/V11.1/bin/db2fmcd
#ExecStart=/opt/ibm/db2/V11.1/bin/start.sh
ExecStart=/bin/sh -ec "/opt/ibm/db2/V11.1/bin/db2fmcd"
 
Restart=always
KillMode=process
KillSignal=SIGHUP

[Install]
WantedBy=default.target

2) Execute the following commands as root:

$ sudo systemctl daemon-reload
$ sudo systemctl enable db2fmcd
$ sudo systemctl start db2fmcd

$ sudo nano /opt/ibm/db2/V11.1/bin/start.sh

#!/bin/sh -e
#
exit 0

Пришлось в соответствии с  советом  городить костыли запускать через rc.local
 
$ sudo nano /etc/rc.local

#!/bin/bash
cd /opt/ibm/db2/V11.1/bin/
./db2fm -i db2inst1 -u -U
./db2fm -i db2inst1 -s -S
exit 0


Сохранить. 
$ sudo chmod +x /etc/rc.local

$ sudo reboot

Выполнение скрипта при выключении-перезагрузке, что не так?

Создадим сервис для выключения db2


$ sudo nano  /lib/systemd/system/db2exit.service

[Unit]
Description=db2stop

[Service]
ExecStop=/bin/su db2inst1 -c '. /home/db2inst1/sqllib/db2profile;/home/db2inst1/sqllib/adm/db2stop'
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target reboot.target poweroff.target

Сохранить.

$ sudo systemctl daemon-reload
$ sudo systemctl enable db2exit.service
$ sudo systemctl status db2exit.service
!!!$ sudo systemctl stop db2exit.service

Комментариев нет:

Отправить комментарий