Linux 自启动方式一:自启动服务servcie

背景

       渣渣笔记本电脑,作为Linux服务器。将oracle 11g装到了docker中(有关11g docker化安装,将在其他文章讲述),以便学习考取OCP证书。但是,开机后每次都需要su切换到root下起container,甚是繁琐。因而思考Linux的开机启动项。于是乎得到三种解决方案:

  1. 自启动服务service
  2. Crontab---定时任务
  3. /etc/rc.local

本文讲述第一种方案,自启动服务。

环境

jwllinux@jwlLinux ~ $ uname -a

Linux jwlLinux 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:34:49 UTC 2016 i686 i686 i686 GNU/Linux

 

jwllinux@jwlLinux ~ $ hostnamectl

   Static hostname: jwlLinux

         Icon name: computer-laptop

           Chassis: laptop

        Machine ID: 30e8671244344b49af2510a06808f1b0

           Boot ID: 32a4ae15a47e4694908e5f18faaa2c56

  Operating System: Ubuntu 16.04 LTS

            Kernel: Linux 4.4.0-21-generic

      Architecture: x86

jwllinux@jwlLinux ~ $ lsb_release  -d

Description:    Linux Mint 18 Sarah

X86架构,Linux Mint 18

步骤

1. 在/etc/init.d 下建立相关程序的启动脚本

vim /etc/init.d/testservcie

chmod 755 testservcie

jwllinux@jwlLinux ~ $ cat /etc/init.d/testservcie

#!/bin/sh

### BEGIN INIT INFO

# Provides:         testservice

# Required-Start:

# Required-Stop:

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: test for service

# Description:       test for service

### END INIT INFO

 

echo "1"

exit 0

说明:/etc/init.d/下脚本即为debian系列Linux系统init启动项。其脚本的编写需要遵循一定的风格(LSB风格),具体可以查看/etc/init.d/README。如:

Provides===提供了什么服务;

Required-Start===服务启动的依赖项

Default-Start===默认启动层级(0~6)。

  0级:关闭系统(千万不要把initdefault设置为0,否则将开不了机)

  1级:单用户模式

  2级:没有网络多用户模式

  3级:有网络多用户模式

  4级:系统保留

  5级:有网络和图形的多用户模式 

  6级:重启系统(千万不要把initdefault设置为6,否则电脑将一直开机重启)

……

2. 注册服务

systemctl enable testservcie

update-rc.d testservcie defaults

可能的报错:(此服务已经被其他脚本提供)

此命令会解析脚本头,在相应层级的启动目录下创建指向/etc/init.d/XXX的符号链接,如下:

3. 查询注册的服务

4. 查看服务状态

Linux 自启动方式一:自启动服务servcie_第1张图片

 

5. service 服务名 start 手动启动服务

6. service 服务名 stop 手动关闭服务

其他

       如上步骤主要是使用systemctl命令注册了服务,并用service命令对服务进行操作。Service命令还有许多相关参数,如reloadrestart等,分别对应启动脚本不同的处理逻辑。本文只是简单介绍服务的注册,有关启动脚本的书写,可参阅存量脚本。

补充

对于Redhat/ centos系列的Linux系统,服务的注册可能是chkconfig命令,读者可以需要根据自己OS的适配。

 

你可能感兴趣的:(Linux运维)