Sun Solaris开机自启配置

Sun Solaris 开机自启配置

1. 运行级别定义(rc0.d — rcS.d)

Linux/Solaris系统启动相关目录、脚本说明:

  • init: 系统启动超级进程
  • inittab: 进程启动配置
  • init.d: 启动脚本存放目录
  • rc0---rc6: 运行级别目录
  • rcS: 单用户模式启动脚本

Linux/Solarisrc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d rc6.drcS.d 分别对应特定的运行级别目录:

  • rc0.d: 硬件维护模式或关机(运行级别 0)
  • rc1.d: 单用户模式(运行级别 1)
  • rc2.d: 多用户模式,没有网络服务(运行级别 2)
  • rc3.d: 多用户模式,带网络服务(运行级别 3)
  • rc4.d: 未分配 (可以由用户自定义)
  • rc5.d: 图形界面模式(运行级别 5)
  • rc6.d: 重启(运行级别 6)
  • rcS.d: 单用户模式启动脚本

Solaris运行级别配置文件如下:

在这里插入图片描述

rc2.d下的启动脚本

在这些目录中,通常包含以 K 开头的符号链接和以 S 开头的符号链接。K 表示 "Kill",即停止对应的服务,而 S 表示 "Start",即启动对应的服务。这些符号链接指向 /etc/init.d/ 目录中的服务脚本,从而实现对服务的管理。

Solaris rc2.d 运行级别下的启动脚本如下:

kalami@solaris:/etc/rc2.d$ ls
README       S01rsyslog  S02atd   S02exim4    S02openbsd-inetd      S02vsftpd        S03lightdm          S05rc.local
S01bootlogs  S02acpid    S02cron  S02hddtemp  S02speech-dispatcher  S03avahi-daemon  S03network-manager  S05rmnologin
S01motd      S02anacron  S02dbus  S02ntp      S02ssh                S03bluetooth     S04saned

在这里插入图片描述

init.d目录下的自启动脚本文件

kalami@solaris:/etc/init.d$ ls
acpid         checkfs.sh              hddtemp         lm-sensors             networking       rc.local   sendsigs           udev-finish
alsa-utils    checkroot-bootclean.sh  hostname.sh     motd                   network-manager  rcS        setcom.sh          umountfs
anacron       checkroot.sh            hwclock.sh      mountall-bootclean.sh  nfs-common       README     setcom.sh--        umountnfs.sh
atd           console-setup           kbd             mountall.sh            ntp              reboot     single             umountroot
avahi-daemon  cron                    keyboard-setup  mountdevsubfs.sh       openbsd-inetd    rmnologin  skeleton           urandom
bluetooth     dbus                    killprocs       mountkernfs.sh         pppd-dns         rpcbind    speech-dispatcher  vsftpd
bootlogs      exim4                   kmod            mountnfs-bootclean.sh  procps           rsyslog    ssh                x11-common
bootmisc.sh   halt                    lightdm         mountnfs.sh            rc               saned      udev

在这里插入图片描述

2. 脚本命名字典规则

系统自启动脚本文件名解析:

kalami@solaris>cd /etc/rc2.d/
kalami@solaris>ls
README       S01rsyslog  S02atd   S02exim4    S02openbsd-inetd      S02vsftpd        S03lightdm          S05rc.local
S01bootlogs  S02acpid    S02cron  S02hddtemp  S02speech-dispatcher  S03avahi-daemon  S03network-manager  S05rmnologin
S01motd      S02anacron  S02dbus  S02ntp      S02ssh                S03bluetooth     S04saned

S02vsftpd为例:

  • S表示start, K表示 kill
  • S02vsftpd中的02表示启动顺序,启动顺序不仅取决于数字,还取决于字母(就是数字字母组合)。所以完整的启动顺序应该是字典中的顺序决定。
  • vsftpd为脚本名词,通过名称知道启动什么服务。

注意: 脚本的启动顺序为数字字母组合,所以启动顺序的先后取决于字典值的先后顺序。

3. 开机自启脚本配置

ntp服务为例,演示如何配置开机自启。

【1】. ntp服务开机自启配置

创建ntp服务启动脚本, 编辑/etc/init.d/ntp 文件,内容如下:

#!/bin/sh

### BEGIN INIT INFO
# Provides:        ntp
# Required-Start:  $network $remote_fs $syslog
# Required-Stop:   $network $remote_fs $syslog
# Default-Start:   2 3 4 5
# Default-Stop:
# Short-Description: Start NTP daemon
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

. /lib/lsb/init-functions

DAEMON=/usr/sbin/ntpd
PIDFILE=/var/run/ntpd.pid

test -x $DAEMON || exit 5

if [ -r /etc/default/ntp ]; then
        . /etc/default/ntp
fi

if [ -e /var/lib/ntp/ntp.conf.dhcp ]; then
        NTPD_OPTS="$NTPD_OPTS -c /var/lib/ntp/ntp.conf.dhcp"
fi


LOCKFILE=/var/lock/ntpdate

lock_ntpdate() {
        if [ -x /usr/bin/lockfile-create ]; then
                lockfile-create $LOCKFILE
                lockfile-touch $LOCKFILE &
                LOCKTOUCHPID="$!"
        fi
}

unlock_ntpdate() {
        if [ -x /usr/bin/lockfile-create ] ; then
                kill $LOCKTOUCHPID
                lockfile-remove $LOCKFILE
        fi
}

RUNASUSER=ntp
UGID=$(getent passwd $RUNASUSER | cut -f 3,4 -d:) || true
if test "$(uname -s)" = "Linux"; then
        NTPD_OPTS="$NTPD_OPTS -u $UGID"
fi

case $1 in
        start)
                log_daemon_msg "Starting NTP server" "ntpd"
                if [ -z "$UGID" ]; then
                        log_failure_msg "user \"$RUNASUSER\" does not exist"
                        exit 1
                fi
                lock_ntpdate
                start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- -p $PIDFILE $NTPD_OPTS
                status=$?
                unlock_ntpdate
                log_end_msg $status
                ;;
        stop)
                log_daemon_msg "Stopping NTP server" "ntpd"
                start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
                log_end_msg $?
                rm -f $PIDFILE
                ;;
        restart|force-reload)
                $0 stop && sleep 2 && $0 start
                ;;
        try-restart)
                if $0 status >/dev/null; then
                        $0 restart
                else
                        exit 0
                fi
                ;;
        reload)
                exit 3
                ;;
        status)
                status_of_proc $DAEMON "NTP server"
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
                exit 2
                ;;
esac

创建开机自启动配置脚本,创建/etc/rc2.d/S02ntp 即可,其中的S02ntp 中的 ntp/etc/init.d/ntp 文件名称要一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值