Linux开机服务配置

场景介绍

在很多场景中,我们希望自己的服务在机器启动的时候就一起启动。

在Windows下,这是容易的,也是被我们普遍接受的,因为几乎所有的软件厂商都会在设置中添加一个开机启动的勾选框,还有甚者,会将选框默认勾选☑️。

但转到Linux之后,这件事情就并不总那么容易了。

当我们需要开机启动一个例如Nginx之类的常见服务,如果你是使用默认的包管理工具进行安装的,那很大可能你只需要一行命令即可完成服务开机启动的配置

systemctl enable nginx

当需要开机启动的是一个部署在docker容器中的应用,那同样不需要太折腾,你只需要在容器创建的时候加上一个参数

--restart

而第三种情况,当你手写了一个脚本服务,或者你的应用需要使用一行shell启动时,又该如何呢?

解决方案当然不是唯一的,这很好理解,毕竟在Linux下你甚至可以修改内核。

这边提供一个兼具合理与舒适的解决方案供您参考

解决方案

假设您需要开机启动的脚本(/home/hello)如下

#!/bin/bash
date >> /tmp/hello.log

给予hello执行权限

sudo chmod a+x /home/hello

将hello脚本软链接至/etc/init.d目录下

sudo ln -s /home/hello /etc/init.d/hello

更新启动配置

sudo update-rc.d hello defaults 99

其中99为开机启动顺序
shell执行截图如下
命令执行插图1

验证

重启机器,检验/tmp/hello.log中是否包含一条时间信息

cat /tmp/hello.log

备注

如果需要删除配置,可以执行下面这条命令

sudo update-rc.d -f hello remove

支持作者

欢迎关注作者公众号
https://i-blog.csdnimg.cn/blog_migrate/1aeaa07448f444b2ed5ec47f2e2c7ab1.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 要在Linux上设置服务开机自启动,可以按照以下步骤进行操作: 1. 打开终端,使用root用户登录系统。 2. 找到需要设置开机自启动的服务,可以使用以下命令查看系统中已安装的服务: systemctl list-unit-files --type=service 3. 找到需要设置开机自启动的服务后,使用以下命令开启服务自启动: systemctl enable 服务名称 例如,要设置Apache服务开机自启动,可以使用以下命令: systemctl enable httpd.service 4. 确认服务已经成功设置为开机自启动,可以使用以下命令查看服务状态: systemctl status 服务名称 例如,查看Apache服务状态可以使用以下命令: systemctl status httpd.service 如果服务已经成功设置为开机自启动,状态应该显示为“active (running)”。 以上就是在Linux上设置服务开机自启动的步骤。 ### 回答2: Linux作为一种开源操作系统,使用广泛,拥有许多强大的功能。其中一个重要的功能就是它可以方便地设置服务开机自启动。服务是一种在系统启动时自动后台运行的程序,而对于许多关键服务来说,它们应该保持随时运行以确保系统正常工作。 在Linux中设置服务开机自启动可以分为两部分,第一步是安装需要自启动的服务程序,第二步是设置服务开机自启动。 首先,安装需要自启动的服务程序。这可以通过软件包管理器来完成。以Ubuntu为例,可以使用以下命令来安装Apache服务器: sudo apt-get install apache2 完成安装后,可以使用以下命令来检查服务是否启动。 systemctl status apache2 如果服务已经启动,系统将返回一个带有“Active: active (running)”的状态消息。 接下来,让这个服务在每次系统启动时自动运行。这可以通过“systemd”服务管理器来实现。以Ubuntu为例,可以使用以下命令来启用Apache服务器的自启动: sudo systemctl enable apache2 这将在系统启动时自动启动Apache服务器。您可以使用以下命令来检查服务是否已经设置为自启动: sudo systemctl is-enabled apache2 如果服务已经设置为自启动,系统将返回一个带有“enabled”的状态消息。 总之,Linux是一种功能强大的操作系统,可以方便地设置服务开机自启动。使用上述步骤,您可以轻松地安装并设置需要自启动的服务,并确保它们在系统启动后始终运行,从而确保系统的正常工作。 ### 回答3: 在Linux中,服务是常驻进程,它可以在系统启动时自动启动,从而确保其始终运行。为了设置服务开机自启动,我们需要执行以下步骤: 第一步:确定服务名 在设置服务开机自启动之前,我们需要确保知道该服务的名称。以Nginx为例,我们可以使用以下命令来确定它的服务名称: ``` systemctl list-units | grep nginx ``` 我们可以看到Nginx服务的名称为`nginx.service`。 第二步:将服务添加到自启动列表中 为了将服务添加到开机自启动列表中,我们需要使用`systemctl enable`命令,像这样: ``` sudo systemctl enable nginx.service ``` 这个命令将在`/etc/systemd/system/`目录中创建一个符号链接以启用服务,并在系统启动时自动启动该服务。 如果我们想禁用服务开机自启动,我们可以使用`systemctl disable`命令: ``` sudo systemctl disable nginx.service ``` 第三步:重新启动系统 为了确认服务是否已成功地自动启动,我们可以重新启动系统并检查服务是否已经启动: ``` sudo reboot sudo systemctl status nginx.service ``` 执行这个命令,如果服务已成功启动并运行,我们应该看到服务状态为“active (running)”状态。 除此之外,我们还可以使用systemd-tmpfiles命令定期清理/tmp和/var/tmp目录,用于系统运行期间建立及临时调整文件使用,使用以下命令实现: ``` sudo systemctl edit systemd-tmpfiles-clean.timer ``` 打开编辑器,输入以下内容保存: ``` [Timer] OnBootSec=30s OnUnitActiveSec=1days ``` 使用该命令实现SYSTEMD-TMPFILES-CLEAN服务的刷新: ``` sudo systemctl daemon-reload ``` 最后重启服务: ``` sudo systemctl --now enable systemd-tmpfiles-clean.timer ``` 现在,我们已经成功地将服务添加到了Linux系统的开机自启动列表中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Kareza

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

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

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

打赏作者

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

抵扣说明:

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

余额充值