ubuntu系统配置软件脚本自启动

这篇具有很好参考价值的文章主要介绍了ubuntu系统配置软件脚本自启动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

项目因为某些原因需要服务器自启动来执行脚本, 因此需要在ubuntu服务器上面实现自启动功能.

步骤

ubuntu作为服务器使用时,常常需要在机器重启时能自动启动我们开发的服务。
Ubuntu 18.04不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。
systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。
不同于以往的版本,ubuntu18.04默认不带/etc/rc.local文件,我们需要通过配置来让rc.local.service生效。
然后我们就可以像以前那样,直接把启动脚本写入/etc/rc.local文件,这样机器启动时就会自动运行它。

因此我们在做自启动配置时, 需要区分系统是在ubuntu18.04之前还是之后uanme -a:

rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器

ubuntu18.04之前

  1. 将启动脚本复制到 /etc/init.d目录

    mv test.sh /etc/init.d
    sudo chmod 755 /etc/init.d/test.sh
    
  2. 将该脚本放倒启动列表中去

    cd /etc/init.d
    sudo update-rc.d test.sh defaults 100
    # 其中数字100是脚本启动的顺序号。当有多个脚本的时候,可以设定启动的顺序。
    

ubuntu18.04之后

  1. 第一步:检查系统目录/lib/systemd/system/rc-local.service,如果没有自己新建,文件内容为(如果文件存在本身是没有[Install]项的,需要自己添加进去)

    #  SPDX-License-Identifier: LGPL-2.1+
    #
    #  This file is part of systemd.
    #
    #  systemd is free software; you can redistribute it and/or modify it
    #  under the terms of the GNU Lesser General Public License as published by
    #  the Free Software Foundation; either version 2.1 of the License, or
    #  (at your option) any later version.
     
    # This unit gets pulled automatically into multi-user.target by
    # systemd-rc-local-generator if /etc/rc.local is executable.
    [Unit]
    Description=/etc/rc.local Compatibility
    Documentation=man:systemd-rc-local-generator(8)
    ConditionFileIsExecutable=/etc/rc.local
    After=network.target
     
    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    RemainAfterExit=yes
    GuessMainPID=no
     
    [Install]
    WantedBy=multi-user.target
    Alias=rc-local.service
    
  2. etc目录下的文件也需要进行如上修改,检查/etc/systemd/system/rc-local.service,如果没有该文件则新增该文件

    	#  SPDX-License-Identifier: LGPL-2.1+
    	#
    	#  This file is part of systemd.
    	#
    	#  systemd is free software; you can redistribute it and/or modify it
    	#  under the terms of the GNU Lesser General Public License as published by
    	#  the Free Software Foundation; either version 2.1 of the License, or
    	#  (at your option) any later version.
    	 
    	# This unit gets pulled automatically into multi-user.target by
    	# systemd-rc-local-generator if /etc/rc.local is executable.
    	[Unit]
    	Description=/etc/rc.local Compatibility
    	Documentation=man:systemd-rc-local-generator(8)
    	ConditionFileIsExecutable=/etc/rc.local
    	After=network.target
    	 
    	[Service]
    	Type=forking
    	ExecStart=/etc/rc.local start
    	TimeoutSec=0
    	RemainAfterExit=yes
    	GuessMainPID=no
    	 
    	[Install]
    	WantedBy=multi-user.target
    	Alias=rc-local.service
    	```
    
    
  3. 创建/etc/rc.local脚本文件,并写入想要运行的脚本命令(注意脚本格式!!!)

    vim /etc/rc.local
    

    rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器
    这里需要注意, 脚本开头一定要加#! /bin/bash, 作用是表示此脚本使用/bin/bash来解释执行, 否则在后续执行该脚本时, 则会出现rc-local.service: Failed at step EXEC spawning /etc/rc.local: Exec format error, (又是一个多么痛的领悟~)
    rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器
    同时也应注意: 脚本末尾需要加 exit 0 , 它是一个Shell脚本中的语句,表示脚本执行到此结束并以成功的状态退出

  4. 给rc.local执行的权限

    sudo chmod +x /etc/rc.local
    
  5. 启用服务

    sudo systemctl enable rc-local
    sudo systemctl start rc-local.service
    sudo systemctl status rc-local.service
    

    rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器

  6. 重启电脑看效果
    通过重启reboot后查看脚本启动的应用是否能够正常运行
    rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器

补充: centOS配置

下面是本人使用自己centOS系统配置后自启动的过程

  1. 根据系统文件配置, 找到对应启动脚本, 系统文件所在位置 /lib/systemd/system/rc-local.service
    rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器

  2. 编辑启动脚本 vim /etc/rc.d/rc.local
    rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器

  3. 授予脚本可执行权限 chmod +x /etc/rc.d/rc.local

  4. 重启后测试软件是否启动
    rc-local.service: failed at step exec spawning /etc/rc.local: exec format er,# 技巧合集,# 持续更新,# 经验心得,ubuntu,linux,服务器


参考博客
https://blog.csdn.net/u011473714/article/details/122554757
https://blog.csdn.net/weixin_44654533/article/details/87190638
https://blog.csdn.net/weixin_43859729/article/details/117932090文章来源地址https://www.toymoban.com/news/detail-775427.html

到了这里,关于ubuntu系统配置软件脚本自启动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【自启动配置】Ubuntu 设置开机自启动脚本

    Ubuntu 开机运行的脚本和当前操作系统运行的级别有关,OS 的运行级别大概分为七个 目录 1、查看 OS 运行级别 2、创建自启动脚本 3、添加软链接 输入命令 runlevel 查看当前系统运行级别。当前系统的运行级别为 5 在  /etc/init.d/ 目录下创建自启动脚本,当系统启动时,会自动运

    2024年02月12日
    浏览(39)
  • ubuntu 配置 locale(语言环境)

    locale 是 Linux 系统中多语言环境的接口,每个 locale 都定义了地区、语言和字符集。locale 的语法规则是: 语言_地区.字符集编码@修正值 ,如 zh_CN.UTF-8 中, zh 表示中文, CN 表示中国大陆, UTF-8 表示字符集。 1. 查看可用的语言环境/字符集 locale -a 可以列出所有可用的语言环境

    2024年02月04日
    浏览(41)
  • openSTLinux系统如何配置开机启动自动加载脚本文件连接到某个网络(基于STM32MP1系列)

    在使用pangu开发板过程中,想要配置开发板的USB WiFi模块,利用RTL8188驱动,802.11nWiFi模块,系统自带了WiFi 驱动,只需要在开机后通过wap指令连接指定的WiFi信号即可。 (PS:该WiFi模块只能连接2.4G的AP热点,要注意WiFi类型)。 \\\"wpa\\\" 是 \\\"Wi-Fi Protected Access\\\" 的缩写,是一种用于保护

    2024年02月08日
    浏览(46)
  • Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)

    前提是Linux下的网络桥接不能用,不能通过识别网卡来添加IP地址,只能通过静态写死的方式去设置IP 对于CentOS版本下的静态IP的配置可以参考这篇 Linux系统静态IP配置(CentOS) Linux终端输入: sudo ifconfig 192.168.XXX.XXX 或者 su root 进入root用户下( su ubuntu ,ubuntu是用户名再退回来

    2024年02月13日
    浏览(44)
  • Ubuntu 开机自定义脚本启动(最全版)

    一、背景         同伴在频繁更新系统环境,需要经常使用reboot命令重启,但每次重启后端Jar都会停止,每次重启都需要手动启动Web后端Jar包。针对此种情况,想到了采用开机自动启动Jar包的方法来节省时间。 二、详细步骤         1.编写你想要开机自动执行的命令。

    2024年02月05日
    浏览(37)
  • ubuntu 20.04设置开机自启动脚本

    一、使用 rc-local.service rc-local.service 是系统自带的一个开机自启服务, 但是在 Ubuntu20 的 systemd 启动方式下,该服务默认没有开启。,启用它需要做些简单的配置。 在 路径下 /lib/systemd/system/rc-local.service 的 rc-local.service 的脚本,内容规定了 rc.local 的启动顺序和行为 1 建立开机

    2024年02月16日
    浏览(47)
  • 【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解

    目录 🌷 安装Nginx环境 🍀 centos操作系统 🍀 ubuntu操作系统 以下是在linux系统中安装Nginx的步骤: 查看服务器属于哪个操作系统 安装 yum : 如果你确定你的系统应该支持 yum ,但它没有安装,你可以尝试安装它。使用以下命令: ①:更新系统软件包 centos: ②:安装EPEL存储库

    2024年04月26日
    浏览(34)
  • Ubuntu设置kubelet启动脚本关闭swap分区

    查看swap分区 打开swap分区 查看/etc/fstab下所有固化的swap分区,注释 修改kubelet.conf文件 添加 生效

    2024年02月04日
    浏览(45)
  • windows快速一键启动多个软件脚本bat

    每次打开电脑都想启动多个软件,而开启开机自启又会拖慢开机速度,万一某天不需要开启这么多软件又会影响开机速度,还需要一个一个关闭,就很麻烦 使用bat文件即可自定义开启多个软件  首先新建一个文本文档, 按照以下格式编写: start + 空格 + /d + \\\"软件的所在绝对路径\\\" + 空

    2024年02月12日
    浏览(47)
  • spring boot启动环境的配置与更改(dev,local,pro)包含单元测试环境

    properties 该文件是一种 key-value 的格式,配置文件的特点是,它的Key-Value一般都是String-String类型的,因此我们完全可以用 MapString, String 来表示它。 用Properties读取配置文件非常简单。Java默认配置文件以 .properties 为扩展名,每行以key=value表示,以 # 课开头的是注释。 yaml YAML是

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包