描述:
linux7安装oracle11G后,设置开机自启动
问题:
当服务器重启或使用systemctl start oracle.service以后,会把在start的脚本执行,并把stop的脚本一起执行。
配置文件和脚本:
[root@localhost ray]# vim /lib/systemd/system/oracle.service
[Unit]
Description=oracle Server
After=network.target
[Service]
Type=forking
ExecStart=/root/scripts/dbstart.sh
ExecStop=/root/scripts/dbstop.sh
ExecReload=
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@localhost scripts]# vim dbstart.sh
#!/bin/bash
su - oracle -c "dbstart"
[root@localhost scripts]# vim dbstop.sh
#!/bin/bash
su - oracle -c "dbshut"
解决:
不使用脚本调用oracle用户的命令,而是直接指定服务的用户和属组。
[root@localhost ray]# vim /lib/systemd/system/oracle.service
[Unit]
Description=oracle Server
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/u01/oracle/product/11.2.0/db_1/bin/dbstart
ExecStop=/u01/oracle/product/11.2.0/db_1/bin/dbshut
ExecReload=
PrivateTmp=true
[Install]
WantedBy=multi-user.target