Linux开机自启的三种方式

Linux系统下设置开机自启动的方法
文章介绍了三种在Linux系统中设置开机自启动的方法:1)在/etc/rc.local中添加命令;2)将脚本放入/etc/init.d目录并设置执行权限;3)创建systemd服务,以nginx为例详细说明了创建.service文件并启用服务的过程。

1、在/etc/rc.local文件中添加自启动命令

 

​​​​​​​2、在/etc/init.d目录下添加自启动脚本

Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。

PS:添加完后务必设置文件的可执行权限 chmod +x filename

​​​​​​​3、制作Linux服务并设置开机自启动

以nginx为例,通过制作linux服务的方式启动,并设置开机启动

1)前提条件:nginx已安装,默认安装路径为:/usr/local/nginx

2)在/etc/systemd/system/路径下创建nginx.service文件,写入如下内容

[Unit]

Description=nginx - high performance web server

After=nginx.service

[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

Execenable=/usr/local/nginx/sbin/nginx

[Install]

WantedBy=multi-user.target

3)设置开机自启动

# 设置开机启动

systemctl enable nginx

# 取消开机自启动

#systemctl disable nginx

# 查看服务当前状态

systemctl status nginx

# 启动nginx服务

systemctl start nginx

# 停止nginx服务

systemctl stop nginx

# 重启nginx服务

systemctl restart nginx

### Linux 系统设置开机启动的方法 在 Linux 系统中,可以通过多种方式实现服务或程序的开机启动功能。以下是常见的几种方法及其具体操作: #### 使用 `init.d` 脚本 传统的基于 SysV 的初始化系统允许通过 `/etc/init.d/` 目录下的脚本来管理服务的启动和停止。要使某个服务开机,可以按照以下方式进行配置: 1. 将服务脚本复制到 `/etc/init.d/` 目录下[^4]。 ```bash cp /path/to/service_script /etc/init.d/ ``` 2. 对该脚本赋予可执行权限。 ```bash chmod +x /etc/init.d/service_name ``` 3. 使用 `chkconfig` 或其他工具将其注册为系统服务并用。 ```bash chkconfig --add service_name chkconfig --level 345 service_name on ``` #### 修改 `rc.local` 文件 某些版本的 Linux 支持通过编辑 `/etc/rc.local` 文件来定义额外的任务,在系统启动时运行指定命令。此方法适用于简单的单次任务而非复杂的服务管理: 1. 编辑 `/etc/rc.local` 文件并将目标命令写入其中[^2]。 ```bash echo "/usr/bin/my_program start" >> /etc/rc.local ``` 2. 确保 `/etc/rc.local` 具有可执行权限。 ```bash chmod +x /etc/rc.local ``` #### Systemd 单元文件 (Modern Approach) 对于采用 systemd 初始化系统的现代 Linux 发行版来说,推荐使用 `.service` 文件的方式完成服务的自动化加载过程。这通常涉及创建一个新的单元文件描述所需行为,并通知 systemd 更新其内部数据库以便生效[^3]: 1. 创建新的 `.service` 文件于适当位置(如 `/etc/systemd/system/`)。 ```bash nano /etc/systemd/system/myservice.service ``` 2. 完成编写后重新载入 daemon 并激活新设定。 ```bash systemctl daemon-reload systemctl enable myservice.service ``` 以上三种途径分别适应不同的环境需求——传统 sysvinit 架构倾向于利用 init scripts 和 rc files;而较新型号则更依赖于 declarative configuration via unit files under the control of systemd. ```python # 示例 Python 脚本用于测试目的 print("This is a test script to demonstrate startup.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波浪理论~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值