【Linux】服务自启动脚本
之前一直用别人写的自动化脚本,自己写的很少,说实话Linux的三剑客至今还是懵懵懂懂的状态,没关系慢慢来。
基础知识必会
- 查看服务器中某个脚本的位置
- 比如说咱们经常用到的start-all.sh,一直在用却不知道在哪个位置,这就有点尴尬。
start-all.sh脚本用于启动 Hadoop 集群中的所有组件,该脚本通常位于 Hadoop 安装路径下的sbin目录中。
1
2 通过脚本名称搜索该脚本的位置
sudo find / -name start-all.sh 2>/dev/null运行结果
1
2
3
4
5
6
7
8
9
10
11
12
13 /usr/local/dolphinscheduler.bak/bin/start-all.sh
/usr/local/dolphinscheduler.bak/script/start-all.sh
/usr/local/dolphinscheduler-bin.bak/script/start-all.sh
/usr/local/dolphinscheduler-bin.bak/bin/start-all.sh
/usr/local/dolphin/bin/start-all.sh
/home/syy/spark_udf/spark-2.0.0/sbin/start-all.sh
/home/syy/spark_udf/spark-2.0.0/dist/sbin/start-all.sh
/home/yl/dolphin/apache-dolphinscheduler-3.0.0-src/script/start-all.sh
/home/yl/iam-audit/install/159/iam-audit/usr/local/hadoop-2.7.1/sbin/start-all.sh
/home/yl/iam-audit/install/159/iam-audit/usr/local/spark-2.0.0-bin-hadoop2.7/sbin/start-all.sh
/home/yl/iam-audit/install/150/iam-audit/usr/local/hadoop-2.7.1/sbin/start-all.sh
/home/yl/iam-audit/install/150/iam-audit/usr/local/spark-2.0.0-bin-hadoop2.7/sbin/start-all.sh
/opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/spark/sbin/start-all.sh
- Linux,和Windows系统中的换行格式
- 在Linux和其他类Unix系统中,使用的是LF(Line Feed)字符作为换行符,表示为
\n。 - 在Windows系统中,使用的是CRLF(Carriage Return + Line Feed)作为换行符,表示为
\r\n。
- 在Linux和其他类Unix系统中,使用的是LF(Line Feed)字符作为换行符,表示为
Shell脚本(参照)
源码
1 | /bin/bash |
解析
1 | status=$(ps | grep 3proxy | grep -v "grep" | grep -v "daemon" | awk '{print $1}') |
ps命令:用于列出当前正在运行的进程。grep 3proxy:用于过滤包含关键字 “3proxy” 的进程。grep -v "grep":用于排除包含关键字 “grep” 的行,以防止将grep命令自身作为结果之一。grep -v "daemon":用于排除包含关键字 “daemon” 的行,以防止将守护进程(如果有的话)作为结果之一。awk '{print $1}':用于提取第一列(即进程 ID 列)并输出。status的状态无非两种:
如果存在多个匹配的进程,将只选择第一个匹配项。
如果没有找到匹配的进程,则
status变量将为空。
1 | ulimit -c unlimited |
ulimit命令用于修改Shell环境中的资源限制。-c选项表示设置核心转储文件的大小限制。unlimited表示将核心转储文件的大小限制设置为无限制,即不限制核心转储文件的大小。
解释:
核心转储文件是在程序发生崩溃或异常终止时生成的一个记录了程序状态的文件,有助于进行故障排查和调试工作。通过使用 ulimit -c unlimited,可以将核心转储文件的大小限制设置为无限制,以确保在程序崩溃时生成完整的核心转储文件。
脚本Demo(等待测试上线
1 | !/bin/bash |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.



