linux后台运行和开机启动篇【二】

本文详细介绍了Linux的开机启动机制,包括/etc/profile、.bash_profile、/etc/rc.d/init.d等关键部分的功能。同时,文章还提供了如何在Linux中实现Oracle数据库、iptables等服务的开机自启动方法,通过实例演示了如何将特定命令加入rc.local来实现自启动,以及如何利用chkconfig命令管理服务的开机启动状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上篇文章。

经常的,在linux中我们需要开机启动某些程序,比如oracle数据库,keepalived,或者防火墙。。。。

特别复杂的方法这里不做介绍,我写这篇文章的目的是能用最简单,最实用的方法去实现我需要的效果。结尾我提供一个资料,非常详细的讲解linux的开机启动机制。

 

linux的开机启动机制是非常特别的,对比windows的话,windwos的简直soeasy

 

简单说,linux有三部分“自启动”:

/etc/profile:当用户登录后会被执行的脚本,是一个公共脚本,也就是任何用户登录后都会执行。

.bash_profile:每个用户自己的脚本,通常防止在$home下,当用户登录时,就会执行此用户对应的bash文件。

/etc/rc.d/init.d:这部分是真正的开机自起,也就是linux开机之后执行的脚本。如果我们需要开机启动jboss,相应的操作就要放在这里。

 

关于/etc/rc.d/init.d,init是所有进程之父,init读取/etc/inittab,执行rc.sysinit脚本。所有启动脚本放置在 /etc/rc.d/init.d下,这是linux比较复杂的开机启动机制,呵呵。

 

简单说,我们可以在/etc/rc.d/rc.local中放置我们需要启动后执行的命令,当然也可以是一个脚本,也就是说我们可以在rc.local中引入另一个脚本,这样就能实现开机启动。

而且,最重要的一点,rc.local是以root的权限执行的,所以我们可以加入任何操作。

例如有这样一个脚本/1.sh,我们可以把这个脚本中追加到rc.local中,直接在rc.local最后加入如下:

/1.sh

 

这样当linux启动后,就会以root权限执行/1.sh这个脚本。

说一点实用性的,oracle数据库安装完成之后,并不是开机启动的,那么如何达到开机启动的效果呢?

oracle的启动分为两部分,listener和数据库本身。在oraclebin目录中,有两个文件lsnrctldbstart。他们可以启动oraclelistener和数据库本身。

 

启动listenerlsnrctl  start

启动数据库:dbstart  start

 

然后我们需要在oracle用户下执行这两个命令,因此需要使用到su命令:

启动listenersu - oracle -c "lsnrctl  start"

启动数据库:su - oracle -c "dbstart  start"

将正两句代码加入到rc.local中即可实现oracle的开机自启动。

 

再说说linux服务的开机自启动。

linux比较高阶就是以服务形式存在的开机自起,例如iptables(防火墙)。

 

启动防火墙服务:service  iptables  start

或停止防火墙服务:service iptables  stop

这些服务可以轻而易举的设置为开机自启动,这里需要用到chkconfig命令。在root用户下:

chkconfig  iptables  on  #开机自己防火墙服务

chkconfig  iptaobes off  #开机不启动防火墙服务

 

keepalived服务本身的启动或停止及开机自启动的方法类似。

 

 

结尾附上linux开机自起详解及如何添加服务自定义服务的资料:

http://blog.youkuaiyun.com/wwwxxlby520/article/details/4374079

### 配置 Redis 在 Linux 下作为后台服务运行并设置为开机自启 #### 修改配置文件以支持后台运行 为了使 Redis 能够在后台持续运行,需修改其配置文件 `redis.conf`。进入 Redis 安装目录下的 `/usr/local/src/redis-6.2.6` 文件夹,并创建一个备份副本以防误操作影响现有环境[^4]。 ```bash cp redis.conf redis.conf.bck ``` 接着使用文本编辑器打开原始配置文件: ```bash vi redis.conf ``` 找到如下几项参数进行调整: - 将 `daemonize no` 改成 `daemonize yes` 以便让 Redis 进程脱离终端成为守护进程; - 设置合适的日志级别如 `loglevel notice`; - 如果有密码保护需求,则指定访问控制所需的密码字段 `requirepass your_password`. 完成上述更改之后保存退出[vi](https://www.example.com/) 编辑器:wq[^1]. #### 创建系统服务脚本 对于某些版本的 Linux 发行版来说,可能还需要额外创建 systemd 的 unit file 来管理 Redis 服务。这通常位于 `/etc/systemd/system/` 或者 `/lib/systemd/system/`. 新建名为 `redisd.service` 的文件并将下面的内容写入其中: ```ini [Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=nobody Group=nogroup ExecStart=/path/to/bin/redis-server /etc/redis/6379.conf ExecStop=/path/to/bin/redis-cli -h localhost -p 6379 shutdown Restart=always [Install] WantedBy=multi-user.target ``` 请注意替换掉路径中的 `/path/to/bin/...` 成实际安装位置以及确认使用的端口号是否正确无误[^5]. #### 启用与启动服务 一旦完成了以上两步工作,就可以通过命令来启用该服务使其能够在每次重启计算机时自动加载了: ```bash sudo systemctl enable redisd ``` 最后一步就是立即激活这个新定义的服务实例: ```bash sudo systemctl start redisd ``` 如果一切顺利的话,现在应该已经成功设置了 Redis 在 Linux 上以后台模式运作并且实现了随机器启动而自行唤醒的功能[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值