RHEL 6开机自启动非系统程序的简易设置

需积分: 44 2 下载量 36 浏览量 更新于2024-09-09 收藏 1KB TXT 举报
在Red Hat Enterprise Linux (RHEL) 6版本中,当服务器需要在每次开机时自动启动自定义的非系统程序时,传统的 `/etc/inittab` 配置可能不再适用,因为这个文件在RHEL 6以上版本已被弃用。本文档介绍了一种针对RHEL 6及以后版本(包括6.7)的替代方法,通过编辑`/etc/rc.d/rc.local`脚本来实现程序的开机自启动。 首先,我们需要理解`/etc/rc.d/rc.local`是Linux启动过程中的一个关键脚本,它在系统启动后运行,但在此之前所有的系统初始化服务已经完成。在这个脚本中添加自定义命令,可以确保程序在系统启动时被启动。 具体步骤如下: 1. **创建启动脚本**: - 编写一个名为`StartSrv.sh`的脚本,内容包括记录启动时间和日志,检测并杀死可能存在的程序进程(例如`PROGONE`),然后启动新的程序实例。脚本示例中的`killall PROGONE;`这一行用于终止任何先前的运行实例,以避免资源冲突。`nohup`命令确保程序在后台运行,并将输出重定向到指定的日志文件。 - 脚本还设置了程序运行的端口、超时时间以及日志文件路径,这可以根据实际需求进行调整。 2. **添加到rc.local**: - 将`StartSrv.sh`脚本的路径添加到`/etc/rc.d/rc.local`的末尾,如`sh /usr/prog/StartSrv.sh`。这表示在所有默认的初始化脚本执行完毕后,会执行这个自定义脚本。 3. **注意事项**: - 在`/etc/rc.d/rc.local`脚本的执行前,`/var/lock/subsys/local`目录会被触达以确保没有其他正在运行的初始化进程。 - 使用`yum`命令安装依赖的软件包,如果是从ISO镜像安装,需使用`mount -oloop`来挂载ISO镜像,然后进行安装。 4. **启动设置**: - RHEL 6以上的系统使用System V风格的启动服务,尽管`inittab`不再使用,但通过修改`rc.local`脚本,依然能够实现自定义程序的开机启动。务必确保该脚本位于`/etc/rc.d/rc.local`文件的最后,以确保在所有系统初始化任务完成后执行。 要在RHEL 6及更高版本中实现开机启动自定义程序,关键在于编辑`/etc/rc.d/rc.local`脚本,添加启动命令并确保程序逻辑的正确性。这种方法允许你在不依赖过时配置的情况下,有效地管理自定义服务的启动。