启用与管理Nginx:启动、停止与配置命令

5星 · 超过95%的资源 需积分: 50 3 下载量 81 浏览量 更新于2024-08-05 收藏 2KB TXT 举报
本篇文章主要介绍了如何在Linux系统中使用传统init.d脚本管理Nginx服务,这是一个常见的操作,尤其是在早期的Linux发行版中。以下是详细的步骤和涉及的知识点: 1. **Nginx脚本位置和权限设置**: 在`/etc/init.d/nginx`目录下,有一个名为`nginx`的启动脚本(一个bash脚本),该脚本用于启动、停止、重启、重载和强制重启Nginx服务。首先,需要确保脚本具有执行权限,使用`chmod +x /etc/init.d/nginx`命令。 2. **添加到系统启动流程**: `chkconfig`是Linux系统管理工具,用于将服务添加到系统启动流程中。通过运行`sbin/chkconfig nginx on`命令,Nginx被添加到了系统启动级别8(多用户模式)和5(单用户模式),以及运行级别15(关机)。`sudo /sbin/chkconfig --list nginx`用于检查Nginx服务的状态和配置。 3. **启动与停止服务**: - `start`: 使用`/etc/init.d/nginx start`命令启动Nginx服务,脚本会检测Nginx二进制文件的存在性,检查配置文件是否存在,并启动服务。如果启动成功,会在`/var/lock/subsys/nginx`下创建一个锁文件。 - `stop`: `echo-n $"Stopping$prog:"`会显示停止消息,然后调用`killproc`函数发送QUIT信号给正在运行的Nginx进程,停止服务并删除锁文件。 4. **重启与重载服务**: - `restart`: 先进行配置文件的检查,如果无误则先停止再启动服务,即先调用`stop`函数,再调用`start`函数。 - `reload`: 重新加载Nginx配置,调用`killproc $nginx HUP`发送HUP(休眠或重启)信号给Nginx进程,更新配置而无需完全重启。 5. **强制重启(down & up)**: `force_reload`: 为了确保服务状态切换到最新配置,即使配置加载失败也会重新启动服务,实现与`restart`相同的效果。 这个过程展示了Linux系统管理和自动化服务部署的基本概念,包括使用shell脚本控制服务的生命周期、配置文件管理、系统级服务调度以及进程管理。掌握这些基本操作对IT管理员来说至关重要,尤其在服务器运维和系统维护时。随着容器化技术的发展,虽然现代Linux发行版更倾向于使用systemd或其他现代管理工具,但了解init.d脚本仍然有助于理解和迁移旧系统的管理逻辑。

#!/bin/sh #安装插件 cd /root/mysql if test -e ./sharutils-4.6.1-2.x86_64.rpm then echo 'sharutils开始安装...' rpm -ivh sharutils-4.6.1-2.x86_64.rpm echo 'sharutils安装完成...' else echo 'sharutils文件不存在!' exit fi #安装msql8 if test -e ./mysql8.0.19_64-636.sh then if test -e ./mysql8.0.19_64-636.sh.sha256 then echo '准备安装mysql8' sh ./mysql8.0.19_64-636.sh else echo 'mysql8.sha256文件不存在!' exit fi else echo 'mysql8.sh文件不存在!' exit fi if [ $? -eq 0 ]; then echo 'mysql安装完成...' else echo 'mysql安装失败!' exit fi #执行重启不需验证 /topwalk/baseapp/bin/mysqld restart --skip_grant_tables #安装tcl sh ./tcl-install.sh if [ $? -eq 0 ]; then echo 'tcl安装完成...' else echo 'tcl安装失败!' exit fi #安装expect sh ./expect-install.sh if [ $? -eq 0 ]; then echo 'expect安装完成...' else echo 'expect安装失败!' exit fi #创建mysql用户,授权 sh ./initdb.sh if [ $? -eq 0 ]; then echo 'mysql用户创建,授权完成...' else echo 'mysql用户创建,授权失败!' exit fi ln -s /topwalk/baseapp/bin/mysqld /etc/init.d/ sed -i '/MYSQL_HOME/d' /etc/profile echo "export MYSQL_HOME=/topwalk/baseapp/mysql" >>/etc/profile echo 'export PATH=$PATH:$MYSQL_HOME/bin' >>/etc/profile systemctl enable mysqld source /etc/profile service mysqld restart #初始化库 /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPBASIC.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPDMS.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPUIS.sql #初始化表 /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPBASIC < topsql/TOPBASIC.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPDMS < topsql/TOPDMS.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPUIS < topsql/TOPUIS.sql #安装nginx cp -dpRf ./nginx /usr/local/ useradd nginx -m -d /usr/local/nginx/ -s /bin/bash chown -R nginx.nginx /usr/local/ngi

2023-07-14 上传