操作系统

当前位置:金沙棋牌 > 操作系统 > CentOS启动和停止服务详解整理,linux中配置oracl

CentOS启动和停止服务详解整理,linux中配置oracl

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-09-01 13:33

CentOS启动和停止服务详解整理

Linux服务的添加删除,自动运行及状态

CAMS 在安装过程中会自动添加相关的服务,在安装的最后过程中会提示用户是否启动服务使服务生效,需要注意的是一个服务被添加后并不表示该服务在系统启动过程中会自动运行,仅表示可以使用service 命令来启动停止服务。

  1. 添加服务

添加服务的步骤为:

a. 将该服务的脚本文件拷入/etc/rc.d/init.d 文件夹下保证其状态为可执行

b. 使用chkconfig 命令将服务添加到服务列表中chkconfig --add camsd (注意有两个-)

将服务添加以后,该服务即可以使用service 来启动/停止了

  1. 删除服务

如果要删除某项服务将上述命令的add 改为del 即可

chkconfig --del camsd (注意有两个-)

  1. 设置服务自动运行

Linux 运行有7 种运行级别分别使用0-6 来表示控制台界面运行级别为3,图形界面运行级别为5 ,要使某服务在系统启动时自动运行,使用chkconfig将该服务添加到相应级别的自启动服务列表中即可。

chkconfig --level 35 camsd on (注意有两个-)

上面的命令将camsd 服务添加到级别为3 5 的自启动服务列表中,而下面的命令则将服务camsd 从级别为3 5 的自启动服务列表中删除:

chkconfig --level 35 camsd off (注意有两个-)

如果需要查看某项服务的自启动状态信息使用如下命令:

chkconfig --list camsd (注意有两个-)

CAMS 在安装过程中会自动添加相关的服务,在安装的最后过程中会提示用户是否启动服务使服务生效...

今天在看oracle自启动脚本,突然有点时间,总结一下!!!

参考自(亲自试验,并稍作修改):

服务简介

Linux系统服务是在Linux启 动时自动加载,并在Linux退出时自动停止的系统任务。在Linux启动过程中,我们可以看得很多“starting … ”提示信息,该信息表示正在启动系统服务;而在Linux 退出时,我们也能够看到相应的“Stopping … ”信息,表示系统服务正在停止。Linux自身有许多系统任务,如“network” 服务用于支持网络连接等。CAMS 在安装过程中,会自动加入三个系统任务,以保证在Linux启动时,CAMS 服务自动启动;而在Linux 关闭时,CAMS服务也自动停止。这三个服务分别时:

oracled Oracle 数据库服务

camsd CAMS协议处理模块服务

tomcat4 Tomcat Web Server 服务,用于支持CAMS 配置管理台、自助服务平台、Portal 服务平台及内容计费认证平台等;

Linux 系统的所有服务程序脚本均可以在“/etc/rc.d/init.d” 文件夹中找到,每一项服务对应一个脚本文件。如果CAMS 已经安装,我们可以在该文件夹下找到“oracled”、“ camsd” 和“tomcat4” 这三个文件。

第一次写博客,大家随便看看就好,有错误麻烦提醒下,不喜欢别喷,主要是锻炼自己,形成写博客的好习惯。

启动和停止服务

service 命令用于启动及停止某个服务,例如:

service camsd stop 停止 camsd 服务

service oracled start 启动 oracled 服务

service tomcat4 start 启动 tomcat4 服务

CAMS引入的三个服务间有依赖关系,即camsd 服务和tomcat4 服务依赖与oracled 服务,在oracled 服务启动前不能启动camsd 服务和tomcat4 服务;

而在oracled 服务停止前必须先停止camsd 服务和tomcat4 服务。

刚毕业,现在还没转正,在干运维和自学dba,零零碎碎学了很多东西,很早就想写博客,但没时间和懂得不够深刻全面,写了很多简单的笔记,所以从今天开始练习写博客,养成思考和坚持学习的好习惯

support.filecatalyst.com/index.php?/Knowledgebase/Article/View/210/0/starting-tomcat-as-a-linux-service

服务的添加、删除、自动运行及状态

CAMS 在安装过程中会自动添加相关的服务,在安装的最后过程中,会提示用户是否启动服务(使服务生效)。需要注意的是:一个服务被添加后,并不表示该服务在系统启动过程中会自动运行,仅表示可以使用service 命令来启动、停止服务。

1.添加服务

添加服务的步骤为:

(1) 将该服务的脚本文件拷入“/etc/rc.d/init.d” 文件夹下,保证其状态为“可执行”;

(2) 使用chkconfig 命令将服务添加到服务列表中:

chkconfig –add camsd (注意有两个“ -”)

将服务添加以后, 该服务即可以使用service 来启动/停止了。

2.删除服务

如果要删除某项服务 将上述命令的“add” 改为“del” 即可:

chkconfig –del camsd (注意有两个 “-”)

3.设置服务自动运行

Linux 运行有7 种运行级别,分别使用0-6 来表示,控制台界面运行级别为3,图形界面运行级别为5 ,要使某服务在系统启动时自动运,行使用chkconfig将该服务添加到相应级别的自启动服务列表中即可。

chkconfig –level 35 camsd on (注意有两个 “-”)

上面的命令将 camsd 服务添加到级别为3、 5 的自启动服务列表中;而下面的命令则将服务camsd 从级别为3、 5 的自启动服务列表中删除:

chkconfig –level 35 camsd off (注意有两个 “-”)

如果需要查看某项服务的自启动状态信息, 使用如下命令即可:

chkconfig –list camsd (注意有两个 “-”)

服务简介 Linux系统服务是在Linux启 动时自动加载,并在Linux退出时自动停止的系统任务。在Linux启动过程中,...


tomcat加入服务并设置自启动在另一篇:

系统服务(rhel6/oracle linux6/centos6 都一样)

[oracle@srm-yg ~]$ service oracle start        # 将oracle启动加到系统服务

oracle数据库安装见:

这个oracle服务是哪里来的,系统有哪些服务?
[oracle@srm-yg ~]$ ls /etc/init.d/    #查看系统服务

这下面所有的可执行文件都是系统服务,你可以使用 service xxx start/stop/... 来使用它,但系统启动和关闭时不会开启和关闭所有服务。

** 例子: 添加 oracle 服务 和 tomcat 服务**

[root@srm-yg yyy]# service tomact start               # 这里还未将tomcat添加为系统服务
tomact: unrecognized service

[root@srm-yg test_service]# ls
tomcat
[root@srm-yg test_service]# cp tomcat/bin/catalina.sh  /etc/init.d/tomcat
[root@srm-yg test_service]# vim /etc/init.d/tomcat               # 在第一行后面添加:
#!/bin/sh
# chkconfig: 12345 80 90
# description: srm-yg haha
#CATALINA_HOME=/tmp/test_service/tomcat
保存退出

[root@srm-yg logs]# service tomcat start
[root@srm-yg logs]# curl -I localhost:8080
HTTP/1.1 200 OK
[root@srm-yg logs]# service tomcat stop
[root@srm-yg logs]# service tomcat run           # 这些命令都是可以的

这里有人会也许会奇怪,一般不是就start、stop、status、restart、reload吗?怎么还有个run?

-----其实服务名后面跟run,跟什么都是可以的,这就得看你脚本里面怎么指定了,上面我们是把 tomcat/bin/catalina.sh 文件复制为 /etc/init.d/tomcat 文件,而catalina.sh脚本是可以接收run、debug等参数的。

service xxx服务 start,这里的服务都是在 /etc/init.d/目录下面,所以当你想要使用简洁的 service服务命令去启动 某个服务的话,你只需要定义一个脚本,放到 /etc/init.d/ 目录下面,添加执行权限,脚本中再指定接收的位置参数,可以接收 start、stop、reload、hh、xxx 等等自定义参数。


那系统开机和关机执行的服务又是怎么定义呢?

1、编辑/etc/oradb文件,将每个数据库实例的重启标志由N都设置为Y:

开机 和 关机

[root@srm-yg init.d]# ls ..            # 这些是系统启动的服务指定的地方
init.d  rc  rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  rc.local  rc.sysinit

[root@srm-yg init.d]#cat /etc/inittab        #  这是系统默认的运行级别
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 
id:3:initdefault:

----linux具有7个运行级别:0-6

0是关机,1是单用户,3是多用户,6是重启,这几个使我们常用的。

在 /etc/inittab 文件中定义了系统开机时的初始化运行级别,我虚拟机没装X图形服务,所以默认的初始化为3,如果你装了桌面,一般默认是5.

当系统启动的时候会执行rc文件,这个脚本会检测当前的运行级别,然后会执行对应级别的rcX.d目录下面的SXXxx文件,例如:S80tomcat ,当系统关闭时,又会执行KXX,K开头的脚本。rc0.d-rc6.d这7个目录下的文件都是从 /etc/rc.d/init.d 目录下链接过来的,S代表系统启动时执行,K代表系统关闭时执行。

记得刚刚我们在 /etc/init.d/tomcat 文件中加入的3行命令吗?

# chkconfig: 12345 80 90
# description: srm-yg haha
1个时服务定义,1个时服务注释
#CATALINA_HOME=/tmp/test_service/tomcat

别以为它只是注释,它可以配置 chkconfig 命令来使用, 12345 代表12345运行级别为on,未写明的0和6为 off

刚刚我们将 tomcat 的启动和停止 变成了一项系统服务,但只能手动运行,并不是开机自动运行的,现在执行下面这个命令:

[root@srm-yg init.d]# chkconfig --add tomcat    # 将 tomcat 服务加入运行级别

通过# chkconfig: 12345 80 90 的指定,系统会将我们的 /etc/init.d/tomcat 连接到rcX.d的各个目录下面,指定的为on,未指定为off。所以,在 ( rc1.d rc2.d rc3.d rc4.d rc5.d )下面会有一个从 /etc/rc.d/init.d/tomcat 链接过来的 S80tomcat 文件,在 rc0.d 和 rc6.d 目录下会有一个 K90tomca 文件,80 90分别代表启动和停止的顺序,序号越小越先执行,S代表启动时执行,K代表关闭时执行,这样你在运行12345级别时一开机系统就会按顺序,到80就启动tomcat服务了,然后运行0和6是系统会按顺序停止tomcat服务。

执行S80tomcat时,系统会调用tomcat服务,并自动传递一个start参数
执行K90tomcat时,系统调用tomcat服务,自动传递一个stop参数

chkconfig --add xxx服务
它会安装脚本定义的级别和开关机顺序将服务添加到系统管理

我们还可以使用 chkconfig --level 1 tomcat off 命令来更改,这样系统会把rc1.d目录下的S80tomcat,变成K90tomcat

还有一个文件可以做到开机启动的方法
`[root@srm-yg init.d]# vim /etc/rc.local # 在文件中执行启动tomcat的shell命令,如下: /tmp/test_service/tomcat/bin/startup.sh

一些不重要的开机自启服务可以放在这里,但它不是系统服务,需要在rcX.d里面所有脚本按顺序执行完成后才会执行这里,而且不会关闭前执行关闭,但优点是简单。


su root
gedit /etc/oratab

oracle配置 自启动 和 关闭

  1. 修改oracle系统配置文件

    [oracle@srm-yg ~]$ vim /etc/oratab      #  将 N 改为 Y
    
  2. 在 /etc/init.d/ 目录下添加 oracle启动脚本(我们公司大佬写的)

    #!/bin/sh
    # chkconfig: 2345 80 10
    # description: Oracle auto start-stop script.
    #
    # Set ORA_HOME to be equivalent to the $ORACLE_HOME
    # from which you wish to execute dbstart and dbshut;
    #
    # Set ORA_OWNER to the user id of the owner of the
    # Oracle database in ORA_HOME.
    ORA_HOME=/home/oracle/product/12.2.0/db_1
    ORA_OWNER=oracle
    if [ ! -f $ORA_HOME/bin/dbstart ]
    then
    echo "Oracle startup: cannot start"
    exit
    fi
    case "$1" in
    'start')
    # Start the Oracle databases:
    echo "Starting Oracle Databases ... "
    echo "-------------------------------------------------" >> /var/log/oracle
    date  " %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
    echo "-------------------------------------------------" >> /var/log/oracle
    su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle
    echo "Done"
    # Start the Listener:
    echo "Starting Oracle Listeners ... "
    echo "-------------------------------------------------" >> /var/log/oracle
    date  " %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
    echo "-------------------------------------------------" >> /var/log/oracle
    su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle
    echo "Done."
    echo "-------------------------------------------------" >> /var/log/oracle
    date  " %T %a %D : Finished." >> /var/log/oracle
    echo "-------------------------------------------------" >> /var/log/oracle
    touch /var/lock/subsys/oracle
    ;;
    'stop')
    # Stop the Oracle Listener:
    echo "Stoping Oracle Listeners ... "
    echo "-------------------------------------------------" >> /var/log/oracle
    date  " %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
    echo "-------------------------------------------------" >> /var/log/oracle
    su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle
    echo "Done."
    rm -f /var/lock/subsys/oracle
    # Stop the Oracle Database:
    echo "Stoping Oracle Databases ... "
    echo "-------------------------------------------------" >> /var/log/oracle
    date  " %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
    echo "-------------------------------------------------" >> /var/log/oracle
    su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle
    echo "Done."
    echo ""
    echo "-------------------------------------------------" >> /var/log/oracle
    date  " %T %a %D : Finished." >> /var/log/oracle
    echo "-------------------------------------------------" >> /var/log/oracle
    ;;
    'restart')
    $0 stop
    $0 start
    ;;
    esac
    
  3. 更改脚本权限

    [root@srm-yg init.d]# chmod 755 oracle
    
  4. 添加到 系统自启 和 关闭

    [root@srm-yg init.d]# chkconfig --add oracle
    

完毕,谢谢,其中可以还有些原理解释的不好,需要读者慢慢去揣摩脚本。。

修改后如下:

# The first and second fields are the system identifier and home
# directory of the database respectively.  The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
sunlight:/home/oracle/product/11.2/db_1:Y

2、新建/etc/init.d/oracle文件,并添加如下配置:

su root:
gedit /etc/init.d/oracle                

添加如下内容:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database software.
# ORA_OWNER为在linux中安装oracle数据库时建立的属于dba组的用户名oracle,而非登陆oracle数据库时的用户名
ORA_OWNER=oracle

case "$1" in
    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        # Remove "&" if you don't want startup as a background process.
        su $ORA_OWNER -c "/home/oracle/scripts/startup.sh >> /home/oracle/scripts/startup_shutdown.log 2>&1" &

        touch /var/lock/subsys/dbora
        ;;
    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su $ORA_OWNER -c "/home/oracle/scripts/shutdown.sh >> /home/oracle/scripts/startup_shutdown.log 2>&1"
        rm -f /var/lock/subsys/dbora
        ;;
esac

3、修改2中oracle文件的权限:

su root
[[email protected] Desktop]# chmod 750 /etc/init.d/oracle

4、设置oracle服务的运行级别,及设置自启动: 

[[email protected] Desktop]# chkconfig --add oracle
[[email protected] Desktop]#

5、创建startup.sh与shutdown.sh脚本,并修改隶属用户及组(位于/home/oracle/scripts)

# mkdir -p /home/oracle/scripts
# chown oracle.oinstall /home/oracle/scripts
[[email protected] Desktop]# chown oracle.dba /home/oracle/scripts

/home/oracle/scripts/startup.sh脚本内容如下:

#!/bin/bash

export TMP=/tmp
export TMPDIR=$TMP
export PATH=/usr/sbin:/usr/local/bin:$PATH
export ORACLE_HOSTNAME=JTWF
#export ORACLE_UNQNAME=db12c

export ORACLE_SID=sunlight
ORAENV_ASK=NO
. oraenv
ORAENV_ASK=YES

# Start Listener
lsnrctl start

# Start Database
sqlplus / as sysdba << EOF
STARTUP;
EXIT;
EOF

/home/oracle/scripts/shutdown.sh脚本内容如下:

#!/bin/bash

export TMP=/tmp
export TMPDIR=$TMP
export PATH=/usr/sbin:/usr/local/bin:$PATH
export ORACLE_HOSTNAME=JTWF
#export ORACLE_UNQNAME=db12c

export ORACLE_SID=sunlight
ORAENV_ASK=NO
. oraenv
ORAENV_ASK=YES

# Stop Database
sqlplus / as sysdba << EOF
SHUTDOWN IMMEDIATE;
EXIT;
EOF

说明:(1)、#export ORACLE_UNQNAME=db12c该项配置有无均可

(2)、ORACLE_HOSTNAME在默认安装完Oracle数据库后,默认为localhost,最好能修改ip地址到机器名的映射,具体见:

(3)、ORACLE_SID在Oracle数据库时配置环境变量时已配置。

6、修改上述两个脚本的权限及所有者:

[[email protected] admin]# chmod u x /home/oracle/scripts/startup.sh /home/oracle/scripts/shutdown.sh
[[email protected] admin]#
chown oracle.dba /home/oracle/scripts/startup.sh /home/oracle/scripts/shutdown.sh

7、测试使用服务启动、关闭Oracle 

su root
# service oracle start
# service oracle stop

说明:(1)、安装完Oracle数据库软件、并创建数据库后,oracle数据库默认已经启动,测试时可先stop,再start

(2)、启动日志在/etc/init.d/oracle文件中已有配置:/home/oracle/scripts/startup_shutdown.log

(3)、service oracle中的oracle和/etc/init.d/oracle及及chkconfig --add oracle三者是一致的。

(4)、注意:若是没执行6步骤,在在/home/oracle/scripts/startup_shutdown.log日志里会报如下错误:

bash: /home/oracle/scripts/startup.sh: Permission denied
bash: /home/oracle/scripts/startup.sh: Permission denied

另外可以执行reboot命令,等待机器重启后,使用sqlplus命令连接oracle即可判断oracle是否自动重启

su root

reboot

重启后:

source /home/oracle/.bash_profile   // 若是sqlplus命令提示不存在,则需手动使环境变量生效,若提示,则该命令不必执行。

sqlplus its/[email protected]             // 能连接进入oracle数据库则说明设置成功

8、设置linux系统重启时,oracle先自启动,tomcat后自启动:

思考方案:

                1、在oracle启动脚本里,执行启动tomcat的命令(tomcat不必设置自启动),但是oracle脚本里已经su oracle,而tomcat是root用户安装的,无执行权限;将tomcat安装目录改为oracle用户所有,则感觉不妥,弃之。

                2、在tomcat的自启动脚本里添加循环,查看oracle进程是否存在,存在则启动tomcat,一定时间内仍然没有oracle进程,则循环结束,亦不启动tomcat;此种感觉麻烦,且对shell脚本不熟悉,弃之。

                3、设置oracle与tomcat自启动脚本里的启动与停止的优先级,可行。

8.1、对/etc/init.d/oracle与/etc/init.d/tomcat文件的运行级说明:

#!/bin/bash  
# This is the init script for starting up the  
#  Jakarta Tomcat server  
#  
# chkconfig: 345 91 10  
# description: Starts and stops the Tomcat daemon.  
#  

oracle运行级文件的配置如下:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.

若是tomcat的运行级文件无这两行注释,在执行chkconfig --add tomcat据说会报错。

其中chkconfig一行说明tomcat在系统运行级别为345时自启动,启动优先权为91,停止优先权为10,优先权越小,表示越早启动,越早关闭。

oracle运行级文件类似。

对linux系统服务的执行等级说明如下:

  --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。
      等级0表示:表示关机
      等级1表示:单用户模式
      等级2表示:无网络连接的多用户命令行模式
      等级3表示:有网络连接的多用户命令行模式
      等级4表示:不可用
      等级5表示:带图形界面的多用户模式
      等级6表示:重新启动

8.2、设置oracle与tomcat的启动与停止优先权

既然知道了运行优先权,则可设置oracle与tomca启动停止优先权,让系统启动时,oracle先启动,tomcat后启动,系统关闭时,tomcat先关闭,oracle后关闭。

su root
gedit /etc/init.d/oracle

将chkconfig一行改为:

# chkconfig: 345 98 11

修改tomcat运行级文件:

su root
gedit /etc/init.d/tomcat

将chkconfig一行改为:

# chkconfig: 345 99 10

8.3设置完毕,测试:

su root

reboot

重启后,访问tomcat服务即可,看能否访问(前提是tomcat应用中连接oracle数据库了)。

当然,要是tomcat部署的应用中没有连接数据库,也不必如此配置了。

over!

support.filecatalyst.com/index.php?...

本文由金沙棋牌发布于操作系统,转载请注明出处:CentOS启动和停止服务详解整理,linux中配置oracl

关键词:

上一篇:没有了

下一篇:没有了