Nginx源码包
使用绝对路径
启动服务:/usr/local/nginx/sbin/nginx
强制停止服务:/usr/local/nginx/sbin/nginx -s stop
重载服务:/usr/local/nginx/sbin/nginx -s reload (类似于重启.但服务不会终止)
验证配置文件语法错误: /usr/local/nginx/sbin/nginx -t
创建软连接方式启动
可以使用绝对路径方式启动
ln -s /usr/local/nginx/sbin/nginx /usr/bin/
echo $PATH 执行的所有命令都要在这里的路径去查找
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
启动服务:nginx
强制停止服务:nginx -s stop
重载服务:nginx -s reload (类似于重启.但服务不会终止)
验证配置文件语法错误: nginx -t
开机自启动vim /etc/rc.d/rc.local /etc/rc.local是他的软连接修改那个都一样
写入/usr/local/nginx/sbin/nginx
chmod +x /etc/rc.d/rc.local 多了一步添加可执行权限
受service管理(仅实现启停.不能实现自启动)
vim /etc/init.d/nginx 粘贴脚本内容
chmod +x /etc/init.d/nginx
实现 start,stop,restart,reload
#!/bin/bash
#Author:yh
#chkconfig: 2345 99 33
#description: nginx server control tools
ngxc="/usr/local/nginx/sbin/nginx"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
case "$1" in
start)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
$ngxc
$ngxc_fpm
echo "nginx service start success!"
else
$ngxc -t
fi
;;
stop)
$ngxc -s stop
killall php-fpm
echo "nginx service stop success!"
;;
restart)
$0 stop
$0 start
;;
reload)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
$ngxc -s reload
pkill -HUP php-fpm
echo "reload nginx config success!"
else
$ngxc -t
fi
;;
*)
echo "please input stop|start|restart|reload."
exit 1
esac
设置源码包受systemctl管理(实现服务启停,自启动)
systemctl命令会查询 服务的启动脚本 /usr/lib/systemd/system
所以现在需要写一个nginx.service 放在脚本下边
- vim /usr/lib/systemd/system/nginx.service (启动的名称而已.统一写法)
[Unit]
Description=nginx #描述信息
After=network.target #网卡启动成功后,启动nginx 优化选项
[Service]
Type=forking #优化选项
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true #优化选项
[Install]
WantedBy=multi-user.target #启动依赖字符界面,适用于(字符以及图形化,包含关系)
- 让systemctl识别
systemctl daemon-reload
3) 添加成功 受systemctl 管理
systemctl start nginx.service 查看端口
- 实验自启动
systemctl enable nginx.service (实际上是通过命令的方式,创建了一个服务启动脚本)
自启动目录 /etc/systemd/system/multi-user.target.wants/ 下自动生成了nginx.service
有则证明生效
systemctl is-enabled nginx.service
systemxtl管理服务:
基本上服务的管理都是通过systemct命令来完成的。systemtl:管理服务状态,开机是否启动等。
格式:
start:stop:restart:
reload:不关闭服务的情况下,重新读取服务配置文件。
enable:开机启动。disable:开机不启动。
status:查看指定服务状态。 有服务部分日志信息
is-enabled:查看指定服务是否为开机启动。enabled启动/disabled不启动
重启Nginx时遇到下列错误
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决方法:
/usr/local/nginx/sbin/nginx -c/usr/local/nginx/conf/nginx.conf
nginx -c 路径 (服务启动准备与-t 相似)
apache 源码包 受service管理(实现service管理,start|stop|restart|configtest)
cd /etc/init.d/
vim apached chmod +x apached
#!/bin/bash
httpd=/usr/local/apache2/bin/apachectl
case $1 in
start)
$httpd start
;;
stop)
$httpd stop
;;
restart)
$0 stop
sleep 0.05
$0 start
;;
configtest)
$httpd -t
;;
*)
echo "usage: $0 start|stop|restart|configtest."
;;
esac
服务启停使用绝对路径
# /usr/local/apache2/bin/apachectl stop
# /usr/local/apache2/bin/apachectl start
注意:没有-s,reload有-t检查
创建软连接方式启动
可以使用绝对路径方式启动
ln -s /usr/local/apache2/bin/apachectl /usr/bin/
启动服务:apachectl
验证配置文件语法错误: apachectl -t
rpm包安装httpd自然受systemctl 管理
小结源码包安装nginx
只是更加习惯用软连接方式,有固定的启动方式,service管理方式也很好
nginx -s stop
源码包安装apache
由于软连接后 不习惯 /usr/local/apache2/bin/apachectl
(apachectl stop) 所以习惯用service 管理,更偏向使用习惯而已
拓展:centos6service 以及chkconfig 服务启停和自启动管理命令是分开的
查询已经安装的服务和区分服务
Chkconfig 列出所有服务自启动状态
Chkconfig --list 相同 (列出RPM包默认安装服务)
Chkconfig --list sshd 列出指定服务自启动状态
Chkconfig --list | grep sshd
RPM包默认安装的服务管理
服从service 以及chkconfig自启动管理
两种启动方式管理- /etc/init.d/目录的启动脚本,如/etc/init.d/sshd start (利用启动目录脚本帮忙启动)
- service sshd start (本身受service管理)
- 格式: chkconfig --level 级别35 httpd服务名 on|off
- 修改配置文件 /etc/rc.d/rc.local
- /etc/rc.local是他的软连接
例: vim /etc/rc.d/rc.local
可以看到 第一个文件是存在的 表示开机时间戳 与w开机时间做对比
可以将/etc/init.d/httpd start 写入其中
关闭chkconfig 自启动管理 reboot看效果
结论: 自启动谁生效问题
自启动服务配置文件如果写入服务 优先 不论chkconfig是否开启
自启动服务配置文件如果不写东西 按照 chkconfig管理自启动
基于xinetd服务管理看ls /etc/xinetd.d/ 有没有这个目录或目录下有没有服务
有服务说明是受xinetd管理
这种管理方式少用了,,因为多了一个服务管理服务,降低了效率
1 安装 xinetd yum本地安装
2 vim /etc/xinetd.d/rsync
怎么改是重点
将disable(开机不启动)=yes 更改为no
3 启动service xinetd restart 表示重启rsunc服务交给了xinetd服务执行
自启动 chkconfig rsync(服务名) on|off 不需要指定级别 xinetd帮助管理
可以对比
Chkconfig --list xinetd Chkconfig --list rsync
看到xinetd 有自启动级别显示,,,,而rsync不显示自启动级别
注意区别:centos6中rsync安装后受xinetd 管理
在centos7中rsyns安装后是独立的,受systemctl管理
源码包 apache启动: /usr/local/apache/bin/apachectl 源码包启动不需要加start
停止 /usr/local/apache/bin/apachectl stop
自启动: vim /etc/rc.local 加入到配置文件内
需要设置
源码包受service管理方式
- 设置软连接
Ln -s /usr/local/apache/bin/apachectl /etc/init.d/apache
原理:service命令本身是在/etc/init.d/目录下是否有启动脚 将他指向真正的启动位置
注意这个设置的名称,就是相应服务启动的名称
启动:service apache start 此时源码包设置成功受service管理
源码包受chkconfig管理自启动方式
- Vim /etc/init.d/apache
第二行第三行写入:
#chkconfig:35 86 76
#description:source package apache 这里的apache是自带的
- chkconfig --add apache
- Chkconfig --list apache 这里就可以用chkconfig 管理了
测试chkconfig --level 35 apache off|on
检查vim /etc/rc.d/rc.local 没有自启动
Reboot 检测 80端口开启,自启动由chkconfig控制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)