这是一个 shell 脚本,用于启动、停止、重启一个名为 simcom_demo 的后台 daemon 进程。具体来说:
- 如果用户执行了 start 命令,则会检查 /data/simcom_demo 是否存在,如果存在就直接启动,否则先将 /usr/bin/simcom_demo 复制到 /data/simcom_demo 再启动。
- 如果用户执行了 stop 命令,则会终止名为 simcom_demo 的进程。
- 如果用户执行了 restart 命令,则先执行 stop 命令,再执行 start 命令。
- 如果用户输入了其他命令,则显示用法指南并退出。
#! /bin/sh
set -e
case "$1" in
start)
echo -n "Starting helloworld daemon: "
if [ -x /data/simcom_demo ]
then
start-stop-daemon -S -b -a /data/simcom_demo
else
cp -f /usr/bin/simcom_demo /data/simcom_demo
start-stop-daemon -S -b -a /data/simcom_demo
fi
echo "done"
;;
stop)
echo -n "Stopping simcom_demo: "
start-stop-daemon -K -n simcom_demo
echo "done"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage simcom_demo { start | stop | restart }" >&2
exit 1
;;
esac
exit 0
这是一个启动脚本:
"set -e" 是指在 Bash 脚本中启用 Exit on Error 模式,也可写作 "set -o errexit"。当执行脚本时,如果命令执行出错,则 Bash 会立即退出脚本并返回一个非零退出码。这在编写自动化脚本时有用,可以快速发现和修复错误。
start-stop-daemon -S 是一个命令行工具,用于启动一个守护进程。"-S"的意思是"start",代表启动守护进程。start-stop-daemon还有其他选项,包括"-K"代表停止守护进程,"-R"代表重新启动守护进程等。start-stop-daemon通常用于在Linux系统中启动和管理系统服务。