CentOS系统中,进程启动脚本的配置主要围绕系统初始化服务目录、开机自启动脚本文件及现代服务管理工具展开,以下是具体路径及使用说明:
/etc/init.d/是CentOS系统中传统SysVinit风格服务脚本的标准存放位置。所有需要通过service命令管理(如service httpd start)或通过chkconfig设置开机自启动的服务脚本,均需放置在此目录下。
chmod +x /etc/init.d/脚本名),且内容需遵循SysVinit规范(包含start、stop、restart等操作函数,以及chkconfig配置行,如#chkconfig: 2345 70 30,用于定义运行级别和启动顺序)。tomcatd,放置于/etc/init.d/后,可通过chkconfig --add tomcatd添加到开机自启动列表。/etc/rc.d/rc.local是系统启动后自动执行的脚本文件,适用于简单的开机任务(如启动自定义应用、执行脚本)。该文件会在所有SysVinit服务启动完成后执行,无需额外配置服务管理。
/etc/rc.d/rc.local,在文件末尾(exit 0之前)添加需要执行的命令或脚本路径(需使用绝对路径,如/opt/myapp/start.sh)。rc.local的默认权限被降低,需手动赋予可执行权限(chmod +x /etc/rc.d/rc.local),否则无法自动执行。CentOS的运行级别(Runlevel)决定了系统启动时的服务状态,每个运行级别对应一个启动脚本目录(如/etc/rc.d/rc3.d/对应运行级别3,即多用户命令行模式)。这些目录中的脚本以S(Start,启动)或K(Kill,停止)开头,后跟数字(表示启动顺序)和脚本名(如S95httpd)。
/etc/init.d/中的服务脚本会被chkconfig或update-rc.d工具自动创建符号链接到对应运行级别的目录中(如chkconfig --add httpd会在rc3.d/中创建S95httpd链接)。ln -s /etc/init.d/httpd /etc/rc.d/rc3.d/S90httpd),但不推荐新手使用。CentOS 7及以上版本采用systemd替代传统SysVinit,服务的启动脚本配置路径发生变化:
/usr/lib/systemd/system/(系统自带服务)或/etc/systemd/system/(自定义服务)。systemctl命令管理服务(如systemctl enable nginx设置开机自启动,systemctl start nginx立即启动)。myapp.service,内容需包含[Service](定义执行命令、工作目录等)和[Install](定义开机目标,如WantedBy=multi-user.target)。/etc/init.d/并通过chkconfig管理;若需快速添加开机任务,可使用/etc/rc.d/rc.local。systemd创建服务单元文件,通过systemctl命令管理,更符合当前系统架构。以上路径及方法覆盖了CentOS不同版本的需求,可根据实际情况选择使用。