• ubuntu18.04设置开机自动启动脚本(以自动启动odoo命令行为例讲解)


    简介
    ubuntu作为服务器使用时,常常需要在机器重启时能自动启动我们开发的服务。

    Ubuntu 16.10开始不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。

    systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链/lib/systemd/system/下的文件。

    不同于以往的版本,ubuntu18.04默认不带/etc/rc.local文件,我们需要通过配置来让rc-local.service生效。

    然后我们就可以像以前那样,直接把启动脚本写入/etc/rc.local文件,这样机器启动时就会自动运行它。

    rc.local启动脚本
    查看所有服务

    ls /lib/systemd/system       # 可以看到很多服务,这样不便于确认指定的服务是否存在
    ls /lib/systemd/system | grep rc   # 找到我们关心的rc-local.service服务
    
    • 1
    • 2

    修改服务配置

    sudo vi /lib/systemd/system/rc-local.service
    
    • 1

    打开后可以看到,文件包含[Unit]和[Service]两个部分内容

    一般启动文件需要三个部分:

    [Unit] 启动顺序与依赖关系
    [Service] 启动行为, 如何启动,启动类型
    [Install] 定义如何安装这个配置文件,即怎样做到开机启动
    在文件最后加入以下内容:

    [Install]  
    WantedBy=multi-user.target  
    Alias=rc-local.service
    
    • 1
    • 2
    • 3

    创建执行文件

    sudo vi /etc/rc.local
    
    • 1

    写入以下内容:

    #!/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.
    time=$(date)
    echo $time > /odoo16/rc-local-info.log	# 这个是你的实际接收脚本启动日志的路径
    # add your scritp here
    python3 /odoo16/src/odoo-bin -c /odoo16/odoo.conf	# 这个是你的实际项目路径
    exit 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    为rc.local加执行权限:

    sudo chmod +x /etc/rc.local
    
    • 1

    建立软链接
    systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接

    sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
    
    • 1

    启用服务并启动

    sudo systemctl enable rc-local
    sudo systemctl start rc-local.service      # 一直等待,可以不用理它,重启测试即可
    sudo systemctl status rc-local.service
    
    • 1
    • 2
    • 3

    重启检查:

    cat /odoo16/rc-local-info.log
    
    # Thu 26 Oct 2023 11:36:09 AM CST
    
    • 1
    • 2
    • 3
  • 相关阅读:
    01-10 周二 PyCharm远程Linux服务器配置进行端点调试
    redis基于docker的集群部署
    Spring Boot整合swagger
    zk系列三:zookeeper实战之分布式锁实现
    Sophus安装
    《计算机体系结构》1.4 技术趋势
    Apache Hudi Timeline:支持 ACID 事务的基础
    Intel汇编-使用命令行参数
    ctf:kali工具: msfvenom
    【Pytorch】深度学习之优化器
  • 原文地址:https://blog.csdn.net/weixin_38708145/article/details/134052478