# **********************************************************************
#                     Linux shell 自启动脚本写法
# 说明:
#     我们在做系统的时候,写自启动脚本是常有的事,下面是一个样板分析。
#
#                                   2017-1-10 深圳 南山平山村 曾剑锋
# **********************************************************************

#!/bin/sh                                           # 脚本运行的shell
#
# sshd        Starts sshd.                          # 描述
#

# 接下来是运行脚本之前需要满足的一些条件,主要是做一些检查性质的内容,
# 防止后续程序在运行的时候,出现一些环境问题,或者对其他的后续程序需要
# 运行的先决条件进行检查。

# Make sure the ssh-keygen progam exists
[ -f /usr/bin/ssh-keygen ] || exit 0                

# Create any missing keys
/usr/bin/ssh-keygen -A

# 如果有文件需要生成,有些权限希望默认给出,这样就不用每次去给权限了。
umask 077

# 当系统开始启动的时候,运行的函数
start() {
    printf "Starting sshd: "
    /usr/sbin/sshd
    touch /var/lock/sshd
    echo "OK"
}

# 当系统开始停止的时候,运行的函数
stop() {
    printf "Stopping sshd: "
    killall sshd
    rm -f /var/lock/sshd
    echo "OK"
}

# 当系统开始重启的时候,运行的函数 
restart() {
    stop
    start
}

# 这里可以认为是对上面三个函数进行分支调用
case "$1" in
  start)
    start               # 调用start函数
    ;;
  stop)
    stop                # 调用stop函数
    ;;
  restart|reload)
    restart             # 调用restart函数
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

# 退出并返回执行结果
exit $?