Ubuntu server 开机服务不启动,服务无法自启动

Ubuntu 版本:20.04.1 TLS

在 /lib/systemd/system/ , /etc/systemd/system/ 两个目录配置好服务关联后设置systemctl enable XXXX 服务成功。

重启服务器,服务未启动,排查结果:脚本未设置启动级别。

服务脚本模板:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

(此处插入启动级别内容)


(....)用户自定义要运行的代码


exit 0

启动级别模板:2 3 4 5 为开机机器运行的相关时段尝试启动服务

### BEGIN INIT INFO
# Provides:       service_name
# Required-Start:
# Required-Stop: 
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Short-Description:  
# Description:   
### END INIT INFO

引用内容:

设置服务启动配置

https://blog.youkuaiyun.com/ErErFei/article/details/98205463

启动模板配置

https://mp.youkuaiyun.com/editor/html/110097791

### 配置 Ubuntu Server 开机自启服务或应用程序 #### 使用 `systemctl` 启用现有服务 对于已知的服务,如 Apache HTTP 服务器,可以通过命令行工具 `systemctl` 来启用其随系统启动而自动运行的功能。具体操作为使用超级用户权限执行特定指令来激活这一特性[^1]。 ```bash sudo systemctl enable apache.service ``` 此命令会创建必要的符号链接,使得指定的服务能够在每次计算机重启之后无需人工干预即可自行开启。 #### 注册 Python 脚本作为开机自启动服务 当目标是一个由 Python 编写的程序而非传统意义上的守护进程时,则需先定义一个新的 `.service` 文件于 `/etc/systemd/system/` 目录内,并对其进行适当配置以便告知 systemd 如何处理这个新加入的任务[^2]。 ```ini [Unit] Description=Image Server Service [Service] ExecStart=/usr/bin/python3 /full/path/to/script.py Restart=always User=nobody Group=nogroup Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target ``` 上述示例展示了如何构建一个简单的 service 单元文件用于启动基于 Python 的图像服务器应用实例。注意替换路径以匹配实际部署情况下的位置。 #### 将任意 Shell Script 设定成开机即刻触发的服务 针对那些希望在后台持续运作或是仅需一次性初始化工作的 shell script ,同样可以借助 systemd 提供的强大功能将其纳入到系统的生命周期管理当中去。下面给出了一套完整的流程说明: - **编写并保存待执行的脚本** 确认所编写的自动化任务已被赋予足够的访问控制属性以及正确的解释器声明头部(shebang),例如 `#!/bin/bash`. - **建立关联的服务描述文档** 类似前面提到的例子,在相应的位置新建名为 `auto_start_test.service` 的文本档,填入恰当的内容结构化表达意图。 - **授予脚本可被执行的权利** 修改文件模式位使其具备 X 属性,从而允许被当作命令调用来对待。 ```bash chmod +x /path/auto_start.sh ``` - **正式登记至 init system 中** 利用 `enable` 子命令通知操作系统应当考虑将刚才准备好的单元视为默认加载项的一部分。 ```bash sudo systemctl enable auto_start_test.service ``` 以上步骤确保了即使是在无人值守的情况下也能顺利完成预期动作,极大地提高了运维效率和可靠性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值