您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
linux中的sysV风格脚本及开机自启(lanmp)
发布时间:2019-07-19 15:51:06编辑:雪饮阅读()
httpd
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
chmod +x /etc/init.d/httpd
[root@localhost bin]# service httpd start
[root@localhost bin]# service httpd stop
nginx
[root@localhost src]# cat nginx
#!/bin/bash
scriptPath='/usr/local/nginx/sbin/nginx'
nginx_pid=`netstat -tlp | grep nginx | grep -v grep | awk -F '/' '{print $1}' | awk '{print $7}'`
case $1 in
'start')
$scriptPath;;
'stop')
if [[ -n $nginx_pid ]]
then
kill $nginx_pid
fi
;;
'reload')
$scriptPath -s reload;;
'restart')
if [[ -n $nginx_pid ]]
then
kill $nginx_pid
fi
$scriptPath
;;
*)
echo "usage: `basename $0`{start|stop|restart|status}";;
esac
解析:netstat:用于显示网络状态,t仅看tcp,l仅看listening,p显示程序路径及进程号
grep -v grep:-v反转查找,这里即将匹配结果中若包含grep的都排除掉,而不是匹配到(即反转)
awk:-F指定分割符
cp /usr/local/src/ng inx /etc/init.d/
chmod +x /etc/init.d/nginx
[root@localhost bin]# service nginx start
[root@localhost bin]# service nginx stop
mysql
[root@localhost src]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost src]# service mysqld start
Starting MySQL.. SUCCESS!
php
[root@localhost src]# cat php-fpm
#!/bin/bash
scriptPath='/usr/local/php/sbin/php-fpm'
fpm_pid=`netstat -tnlp | grep php-fpm | grep -v grep | awk -F '/' '{print $1}' | awk '{print $7}'`
case $1 in
'start')
$scriptPath;;
'stop')
if [[ -n $fpm_pid ]]
then
kill $fpm_pid
fi
;;
'restart')
if [[ -n $fpm_pid ]]
then
kill $fpm_pid
fi
$scriptPath
;;
*)
echo "usage: `basename $0`{start|stop|restart}";;
esac
cp /usr/local/src/php-fpm /etc/init.d/
chmod +x /etc/init.d/php-fpm
[root@localhost bin]# service php-fpm start
[root@localhost bin]# service php-fpm stop
开机自启
以php-fpm为例
[root@localhost src]# cat /etc/init.d/php-fpm
#!/bin/bash
#chkconfig:2345 10 90
scriptPath='/usr/local/php/sbin/php-fpm'
fpm_pid=`netstat -tnlp | grep php-fpm | grep -v grep | awk -F '/' '{print $1}' | awk '{print $7}'`
case $1 in
'start')
$scriptPath;;
'stop')
if [[ -n $fpm_pid ]]
then
kill $fpm_pid
fi
;;
'restart')
if [[ -n $fpm_pid ]]
then
kill $fpm_pid
fi
$scriptPath
;;
*)
echo "usage: `basename $0`{start|stop|restart}";;
esac
其中2345是默认启动级别,级别有0-6共7个级别。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。
关于优先级的个人理解:先进后出,后进先出,所以和为100,应该是松散的要求,反正好多脚本里这两个优先级都是互相成反比的。
关键字词:linux,sysV,service,脚本,自启,chkconfig,lanmp