首页 > 其他分享 >Systemd设置开机自启

Systemd设置开机自启

时间:2024-07-17 11:52:51浏览次数:14  
标签:Systemd websocket Service service sudo systemd li 自启 开机

一、systemd使用

1. 创建 systemd 服务文件

创建一个新的 systemd 服务文件,websocket.service为服务名

sudo vim /etc/systemd/system/websocket.service
[Unit]
Description=WebSocket Service
After=network.target

[Service]
ExecStart=/home/li/websocket/websocket
WorkingDirectory=/home/li/websocket
User=root
Restart=on-failure

[Install]
WantedBy=multi-user.target

确保 ExecStart 指向可执行文件路径, User 设置为运行该服务的用户。(如果程序需要root权限才能运行,可以把User设为root)

2. 重新加载 systemd 配置

创建或修改服务文件后,需要重新加载 systemd 配置以使更改生效

sudo systemctl daemon-reload

3. 启用并启动服务

启用服务以使其在启动时自动运行

sudo systemctl enable websocket.service

启动服务:

sudo systemctl start websocket.service

4. 检查服务状态

检查服务的运行状态以确保它正确启动:

sudo systemctl status websocket.service

5.停止并禁用服务

停止:

sudo systemctl stop websocket.service

禁用:

sudo systemctl disable websocket.service

6.查看日志

sudo journalctl -u websocket.service

二、可能遇到的问题

1、程序退出太快

服务的启动脚本或程序崩溃或退出得太快,导致 systemd 尝试多次重新启动服务并最终失败

Stopped websocket.service - WebSocket Service.
websocket.service: Start request repeated too quickly.
websocket.service: Failed with result 'exit-code'.
Failed to start websocket.service - WebSocket Service.

可以通过添加 RestartSec 参数设置重新启动之间的延迟时间。

[Unit]
Description=WebSocket Service
After=network.target

[Service]
ExecStart=/home/li/websocket/websocket
WorkingDirectory=/home/li/websocket
User=root
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

2、程序运行时需要链接动态库

error while loading shared libraries: libmywslib.so: cannot open shared ...

2.1 设置 LD_LIBRARY_PATH

[Service]
ExecStart=/home/li/websocket/websocket
WorkingDirectory=/home/li/websocket
Environment="LD_LIBRARY_PATH=/path/library"
User=root
Restart=always
RestartSec=10

2.2 更新系统的库路径

将库路径添加到系统库路径中:

创建一个新的配置文件(例如 /etc/ld.so.conf.d/mywslib.conf

/path/library

然后运行 ldconfig 更新系统的库缓存

sudo ldconfig

标签:Systemd,websocket,Service,service,sudo,systemd,li,自启,开机
From: https://www.cnblogs.com/LiBlog--/p/18306990

相关文章

  • 开机启动流程
    开机poweron 一系列硬件检查post自检bios也会硬件检测bios(uefi)会根据启动顺序启动第一启动顺序在硬盘的话会找到第一个扇区的mbr从中找主引导程序找到系统驱动文件在根目录下的boot 去运行内核文件创建pid1的systemd进程会去进行一系列服务启动 启动对应运行级别(m......
  • docker centos7 镜像 systemctl 报错 Failed to get D-Bus connection: Operation not
    从docker下载默认的CentOS镜像没有开启systemd,执行systemctl命令会显示“FailedtogetD-Busconnection:Operationnotpermitted”错误,如果docker创建centos7的容器涉及到systemctl服务操作,或者需要实现容器开机后自动启动服务功能。需要调整镜像并且修改镜像启动方式......
  • RK3568平台(基础篇)开机LOGO
    一.开机LOGO概述rk3568开机logo由uboot和kerne两阶段所用图片构成uboot启动阶段主动加载logo.bmp,kernel启动阶段会加载logo.bmp和logokernel.bmp。在内核编译时这两张图片会打包到resource.img镜像,然后再合并到boot.img;logo文件直接关系boot.img大小boot.img分区超出分......
  • Mock server自启动
    使用Flask-testing客户端,实现mock server自启动1.创建mock_server#mock_server.pyfromflaskimportFlask,jsonifyapp=Flask(__name__)@app.route('/api/user',methods=['GET'])defmock_user():returnjsonify({'id':1,'name&#......
  • 服务器断电后无法开机
    当服务器断电后无法开机,‌可能的原因和解决方法包括:‌.电源和断路器检查:‌首先应检查服务器的电源系统和断路器是否正常工作,‌确保有足够的电力供应。‌建议保存备份电源以避免断电造成的损害和损失。‌.电源开关检查:‌确认服务器的电源开关处于正常位置。‌如果电源开关不在正......
  • Systemd 学习笔记
    Unit的配置文件[Unit]区块通常是配置文件的第一个区块,用来定义Unit的元数据,以及配置与其他Unit的关系[Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动[Service]区块用来Service的配置,只有Service类型的Unit才有这个区块Unit文件[Unit......
  • 在Linux中,系统的开机启动顺序是什么?
    在Linux中,系统的开机启动顺序是一个复杂但有序的过程,它涉及从硬件自检到用户登录的多个阶段。以下是Linux系统开机启动顺序的详细说明:一、BIOS自检与启动设备选择加载BIOS:BIOS(基本输入输出系统)是计算机启动时的第一个软件。它负责在硬件和软件之间提供接口,进行开机自检(POST),检......
  • Apache DolphinScheduler如何开启开机自启动功能?
    转载自东华果汁哥ApacheDolphinScheduler是一个分布式、去中心化的大数据工作流调度系统,支持大数据任务调度。若要设置DolphinScheduler开机自启动,通常需要将其配置为系统服务。以下是一般步骤,具体操作可能因操作系统的不同而有所差异:Linux系统创建系统服务文件:编辑一......
  • QML仿Windows开机动画
    importQtQuick2.5importQtQuick.Window2.2Window{visible:truewidth:640height:320id:roottitle:qsTr("win10loading")color:"#1086a2"Repeater{model:5id:repeaterRe......
  • 电脑开机检测不到硬盘怎么办 电脑检测不到硬盘问题解决
    电脑开机检测不到硬盘,无法进入系统或者显示“RebootandSelectproperBootdevice”等错误信息。这种情况可能会导致我们的数据丢失或者无法使用电脑。一、电脑检测不到硬盘的可能原因电脑检测不到硬盘的原因主要有以下几种:1、硬盘连接线松动或损坏:硬盘是通过SATA线或M.2插......