导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    systemd的简单使用

    技术交流
    systemd
    1
    1
    3626
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 编辑

      在linux系统中,经常需要开机自动启动一些程序,长时间的在后台运行。比如网站的后台程序,数据库程序等等。这些长时间运行的程序在系统中被称之为服务。对于服务的管理操作系统中有一套很完善的管理程序。可以保证服务开机后自动启动,服务程序崩溃后自动重启。对于更复杂的有服务程序间有依赖的情况也可以轻松的处理。下面就介绍一下这个管理程序如何使用。

      以Ubuntu为例,Ubuntu在16.04之前的服务管理程序是upstart,在16.04之后都换成了systemd,两者的使用方法也比较类似,从一个系统迁移到另一个系统也比较容易。下面就介绍一下systemd的简单使用方法。

      比如我们想要长时间的在后台执行一个程序,这个程序的路径是 /home/oumeng/Documents/SharpLink/SharpLink/bin/Debug/SharpLink.exe
      我们想要这个程序开机后自动启动,那么就可以创建一个叫做toxserver.service的文件,文件内容如下

      [Unit]
      Description=Tox Server Daemon
      After=basic.target
      
      [Service]
      WorkingDirectory=/home/oumeng/Documents/SharpLink/SharpLink/bin/Debug
      ExecStart=/home/oumeng/Documents/SharpLink/SharpLink/bin/Debug/SharpLink.exe
      Restart=always
      
      [Install]
      WantedBy=basic.target
      

      这个文件的意义也是很明确的。首先在Unit部分中Description是服务程序的介绍,After是服务程序的执行条件。basic.target是一个系统定义的Unit。包含了系统启动相关的程序。After=basic.target的含义就是开机后自动执行。

      然后就是Service的部分。WorkingDirectory定义了环境目录,ExecStart就是这个服务程序的可执行文件路径。Restart是说服务崩溃的时候要不要重启。这里是设置成了Always,也就是服务要不断的重启。

      最后Install部分定义了这个服务的依赖关系。我们这个例子只依赖于basic.target。

      这个把文件保存在/usr/lib/systemd/system文件夹内就可以了。但是默认服务是没有Enable的。需要执行一条指令Enable一下才能正常使用。
      sudo systemctl enable toxserver.service
      启动服务程序
      sudo service toxserver start
      查看服务运行状态
      sudo service toxserver status
      执行结果如下图
      0_1487831613142_Screenshot from 2017-02-23 14-33-01.png

      关闭服务
      sudo service toxserver stop
      禁用服务
      sudo systemctl disable toxserver.service
      查看服务程序的日志文件
      journalctl -u toxserver
      0_1487831801576_Screenshot from 2017-02-23 14-36-09.png

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community