启动脚本分析
脚本目录:/usr/local/software/kafka/kafka_2.11-0.10.1.1/bin/kafka-server-start.sh
脚本内容
第一部分:
if [ $# -lt 1 ];
then
echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
exit 1
fi
base_dir=$(dirname $0)
说明:首先判断传给脚本的参数个数是否小于1,$#表示传递给脚本的参数个数,如果小于1,则显示用法,
0
表示脚本本身的名字–
d
a
e
m
o
n
,
表示以守护进程在后台运行,不与当前窗口绑定,如果不是,则当前窗口关闭,则脚本执行结束,
[
−
−
o
v
e
r
r
i
d
e
p
r
o
p
e
r
t
y
=
v
a
l
u
e
]
表示指定属性与值,覆盖前面的
s
e
r
v
e
r
.
p
r
o
p
e
r
t
i
e
s
文件中属性与值的
b
a
s
e
d
i
r
=
0表示脚本本身的名字 –daemon,表示以守护进程在后台运行,不与当前窗口绑定,如果不是,则当前窗口关闭,则脚本执行结束, [--override property=value] 表示指定属性与值,覆盖前面的server.properties文件中属性与值的 base_dir=
0表示脚本本身的名字–daemon,表示以守护进程在后台运行,不与当前窗口绑定,如果不是,则当前窗口关闭,则脚本执行结束,[−−overrideproperty=value]表示指定属性与值,覆盖前面的server.properties文件中属性与值的basedir=(dirname $0): 记录当前脚本放置的路径
/usr/local/software/kafka/kafka_2.11-0.10.1.1/bin/
第二部分
if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
fi
首先判断KAFKA_LOG4J_OPTS参数是否为空,如果为空,则指定kafka启动时加载的是
/usr/local/software/kafka/kafka_2.11-0.10.1.1/config/log4j.properties。说明…返回上一层目录。
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
判断KAFKA_HEAP_OPTS值是否为空,如果为空,则设置,对JVM的内存HEAP大小进行设置,默认堆初始化(-Xms)空间为1GB,堆最大空间(-Xmx)1G
2.nohup及nohup.out
如果使用nohup执行命令,配合&的使用,则可以不挂断的将命令执行到后台,
如果没有指定重定向文件,则输出将附加到当前目录的 nohup.out 文件中。
如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中,实例如下:nohup test.pl 2>&1 &