精华内容
下载资源
问答
  • 既然要实现开机自动运行脚本,那么就与Linux开机自启服务的原理有关;Linux开机的时候,会有一步读取/etc/inittab配置文件,选定系统运行级别,然后进行系统初始化,执行/etc/rc.d/下的rc脚本;而其中/etc/rc.d/rc....

     

    既然要实现开机自动运行脚本,那么就与Linux开机自启服务的原理有关;Linux开机的时候,会有一步读取/etc/inittab配置文件,选定系统运行级别,然后进行系统初始化,执行/etc/rc.d/下的rc脚本;而其中/etc/rc.d/rc.local自启动脚本是Linux留给用户自定义个性启动项的一个脚本。
    你只要打开这个脚本文件,看上面的解释,很明显的告诉你这个脚本文件的作用。用户可以在这里写入脚本,开机的时候会自动执行该脚本,启动想要启动的服务程序。

    [root@bogon ~]# cat /etc/rc.d/rc.local 
    #!/bin/sh
    
    #This script will be executed *after* all the other init scripts.
    #You can put your own initialization stuff in here if you don't
    #want to do the full Sys V style init stuff.
    
    touch /var/lock/subsys/local
    [root@bogon ~]#

    方案一:
    使用/etc/rc.d/rc.local自启动脚本文件实现开机自动运行普通用户脚本
    有两种实现方法:
    1、把需要开机启动的脚本程序直接写入/etc/rc.d/rc.local文件中,这样子开机时就会自动执行这些脚本程序,运行对应的服务程序。需要在root环境下编辑
    2、先把脚本程序写好,定义好路径,然后使用su命令来执行,这里只需把su命令写进/etc/rc.d/rc.local脚本文件中即可。
    比如:我需要开机执行/home/ricky/bin/ricky.sh脚本,那么在/etc/rc.d/rc.local中加入以下语句:
    [root@bogon~]#echo "su - ricky -c '/bin/sh /home/ricky/bin/ricky.sh'" >>/etc/rc.d/local
    命令的执行路径一定要用绝对路径,防止因环境变量原因而出错。

    方案二:
    我们都了解/etc/init.d/目录下的所有文件都是脚本文件,这个目录下的脚本文件,在设置好开机自启动项后,在开机时会自动执行。
    使用root账号,自启动脚本编辑脚(随意写的一个启动脚本)

    [root@bogon ~]#vim /etc/init.d/networkstart
    #!/bin/bash
    #network start scripts
    
    #chkconfig: 235 80 30  --235指定的启动级别,在哪写启动级别下启动;--80 启动的优先级;--30 关闭的优先级
    service network start –-启动network服务(你也可以把普通用户脚本放这里,开机启动的时候就会执行;也可以定义好脚本路径,把执行脚本的命令放进这里)

    文件默认是没有执行权限的,所以要调整好脚本文件权限

    [root@bogon ~]# chmod +x /etc/init.d/networkstart

    还需要加入启动项设置开机启动,使脚本文件生效

    [root@bogon ~]# chkconfig --add networkstart 加入启动项
    [root@bogon ~]# chkconfig networkstart on   设置开机自启动
    展开全文
  • Ubuntu开机自动运行脚本1.创建脚本文件2.脚本文件赋权限3.添加Ubuntu自动启动程序 我们常常需要电脑开机后自动运行某些程序或执行某些脚本,如下图所示,我想要开机自动运行always_online.py这个python文件 1.创建...

    我们常常需要电脑开机后自动运行某些程序或执行某些脚本,如下图所示,我想要开机自动运行always_online.py这个python文件
    我需要开机自动运行always_online.py这个python文件

    1.创建脚本文件

    在任意位置创建一个sh脚本文件,可以用txt格式或者gedit等各种方式生成该文件然后更改后缀名。
    如下图所示,我在我的用户根目录 /home/su/ 下创建 always_online.sh脚本文件,脚本文件名字也可以是任意的
    在这里插入图片描述
    如下图所示,脚本中的内容按照如下格式写:
    其中 cd是切换到目标文件的路径下;
    有的环境下python也是可以的,但是有些默认python3环境的需要用python3
    第二行和第三行也可以浓缩为一句
    在这里插入图片描述

    2.脚本文件赋权限

    给我们的sh脚本文件增加可执行权限:
    第一种方式是直接在sh脚本文件上右键,勾选允许执行文件,见下图
    在这里插入图片描述

    第二种方式是用终端命令行chmod增加可执行权限,见下图
    在这里插入图片描述

    3.添加Ubuntu自动启动程序

    Ubuntu自带了启动应用程序的功能

    在这里插入图片描述
    在其中添加一个额外的启动程序,名称可以任意,如下图

    在这里插入图片描述
    我要用一个终端执行sh脚本,因此我的命令为

    // gnome-terminal -x /home/su/always_online.sh &
    

    开机服务的终端窗口如果一闪而过,或者不保持,可以在终端的设置里勾选命令退出时:保持终端打开

    展开全文
  • 主要介绍了ubuntu中编写shell脚本开机自动启动,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Ubuntu 18.04 设置开机自动执行脚本

    千次阅读 2019-08-02 12:28:14
    前言 Ubuntu18.04 默认是没有 /etc/rc.local 这个文件的,需要自己创建 systemd 默认读取 /etc/...执行 ls /lib/systemd/system 你可以看到有很多启动脚本,其中就有我们需要的 rc.local.service 查看rc.local...

    前言

    • Ubuntu18.04 默认是没有 /etc/rc.local 这个文件的,需要自己创建
    • systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。执行 ls /lib/systemd/system 你可以看到有很多启动脚本,其中就有我们需要的 rc.local.service
    • 查看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
    
    • 一般正常的启动文件主要分成三部分
      [Unit] 段: 启动顺序与依赖关系
      [Service] 段: 启动行为,如何启动,启动类型
      [Install] 段: 定义如何安装这个配置文件,即怎样做到开机启动
    • 可以看出,rc.local.service 它少了 Install 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上 [Install] 段,可以发现rc.local.servicerc-local.service文件的链接文件,所以我们只需要修改rc-local.service文件即可:
    [Install]  
    WantedBy=multi-user.target  
    Alias=rc-local.service
    

    操作步骤

    • /lib/systemd/system/rc-local.service 文件中添加如下代码:
    [Install]  
    WantedBy=multi-user.target  
    Alias=rc-local.service
    
    • /etc/目录下面创建rc.local文件,赋予执行权限,
    root@dyjc-bmg:/home/vagrant# touch /etc/rc.local
    root@dyjc-bmg:/home/vagrant# chmod +x /etc/rc.local
    
    • /etc/rc.local 文件添加如下内容:
    #!/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
    
    • systemd 默认读取 /etc/systemd/system 下的配置文件,将/lib/systemd/system/rc.local.service 链接到/etc/systemd/system目录
    root@dyjc-bmg:/home/vagrant# ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
    

    注意: 一定要将命令添加在 exit 0之前

    展开全文
  • ubuntu开机自动运行脚本程序 主要是为了在NX模块上开机自动运行脚本,以实现启动: dji_osdk_ros主节点、大疆camera节点、livox_lidar节点、rosbag record功能。 1、自启动脚本:autosave.sh的内容如下: #!/usr/bin...

    ubuntu开机自动运行脚本程序

    终端中输入gnome-session-properties打开Ubuntu开机首选项管理,如图所示
    在这里插入图片描述
    添加选项中选择需要开机自动运行的脚本,之后,在command选项中添加:
    sh /home/nvidia/autorun.sh


    本次主要是为了在NX模块上开机自动运行脚本,以实现启动:
    dji_osdk_ros主节点、大疆camera节点、livox_lidar节点、rosbag record功能。

    1、自启动脚本:autosave.sh的内容如下:

    #!/usr/bin/env bash
    sleep 10    //********sleep的时间需要开机测试的时候根据实际进行修改********
    gnome-terminal -t "launch_dji" -x bash -c "cd /home/foia/ws_djiCamera;source devel/setup.bash;cd /home/foia/bagfiles;sh ./launch_dji.sh;exec bash"
    sleep 10
    gnome-terminal -t "run_camera" -x bash -c "cd /home/foia/ws_djiCamera;source devel/setup.bash;cd /home/foia/bagfiles;sh ./run_camera.sh;exec bash"
    sleep 10
    gnome-terminal -t "launch_lidar" -x bash -c "cd /home/foia/ws_livox;source devel/setup.bash;cd /home/foia/bagfiles;sh ./launch_lidar.sh;exec bash"
    sleep 10
    gnome-terminal -t "rosbag_record" -x bash -c "source /opt/ros/melodic/setup.bash;cd /home/foia/bagfiles;sh ./rosbag_record.sh;exec bash"
    

    【注解】:
    -t:终端的标题;
    -x:后面的为要在打开的终端中执行的脚本,根据需要自己修改就行了。
    最后的exec bash;是让打开的终端在执行完脚本后不关闭。

    1.1、dji主节点的启动脚本launch_dji.sh内容如下:

    #!/usr/bin/env bash
    roslaunch dji_osdk_ros dji_vehicle_node.launch
    

    1.2、大疆camera节点的启动脚本run_camera.sh内容如下:

    #!/usr/bin/env bash
    rosrun dji_osdk_ros camera_stream_node
    

    1.3、livox_lidar节点的启动脚本launch_lidar.sh内容如下:

    #!/usr/bin/env bash
    roslaunch livox_ros_driver livox_lidar_rviz.launch
    

    1.4、rosbag record功能的启动脚本rosbag_record.sh内容如下:

    #!/usr/bin/env bash
    rosbag record /livox/lidar /image_compressed
    
    展开全文
  • 测试脚本: #!/bin/bash # test.sh cd /home/Desktop/ ls echo "OK!" exit 0 1. /etc/init.d方法 sudo mv test.sh /etc/init.d/ sudo chmod 777 test.sh sudo update-rc.d test.sh defaults
  • ubuntu20.04中设置开机自动执行脚本 1.建立xiaoqiang.service sudo vim /etc/systemd/system/xiaoqiang.service 2.复制到下列内容到xiaoqiang.service文件中 [Unit] Description=/etc/xq.local Compatibility ...
  • ubuntu16开机自动执行脚本命令

    千次阅读 2019-04-02 14:38:59
    刚开始在网上百度,发现几乎全部都是说,将要运行的命令写在 /etc/rc.local 中,然后将要运行脚本赋予执行权限啊啥的......,或者将!/bin/sh改为!/bin/bash等等,然而亲测ubuntu16并没有效果。 我的办法:编辑 /...
  • 开机自动运行: 先写了测试脚本,在/usr下,trans.sh gedit /etc/init.d/rc.local 在最后加上脚本的地址就OK了 ②定时运行脚本: 以下部分转自:...
  • Ubuntu18.04 不能像16.04 那样可以直接使用 /etc/rc.local 文件,需要设置 1.建立 rc-local.service 文件 sudo vim /etc/systemd/system/rc-local.service 2.复制下列内容到 rc-local.service 文件中 [Unit] ...
  • Ubuntu添加开机启动执行脚本

    万次阅读 2016-12-26 11:35:34
    Ubuntu添加开机启动执行脚本方法一:编辑rc.loacl脚本Ubuntu开机之后会执行/etc/rc.local文件中的脚本, 所以我们可以直接在/etc/rc.local中添加启动脚本。 当然要添加到语句:exit 0 前面才行。 如:sudo vi /etc...
  • 挂掉的机器有很多处理策略,常用的就是重新启动,但是为了保证重启之后服务器能够恢复可用状态,需要配置开机启动脚本。2 编写启动脚本服务脚本:假设服务名字为test#!/bin/bash### BEGIN INIT INFO# Provides: ...
  • ubuntu tmux 自动执行shell脚本,可创建多个session,多个window。多个panes, 平铺所有的panes,对指定session下指定window的指定panes发送指定的多条命令,后台创建! 稍微修改可做成自己的自启动脚本
  • #start script cd /home/h2/stat\_data python3 switchControl.py >> control.log & #end script exit 0 加权限 chmod +x /etc/rc.local 开启服务 systemctl enable rc-local 运行 systemctl start rc-local....
  • ubuntu开机自动执行脚本

    千次阅读 2014-09-04 10:43:00
    想要在开机的时候用指定的用户来启动脚本可以结合rc.local文件和su命令。 su命令: su – 用户名 -c 命令 ‘su’ 和 ‘su -’ 的区别是’su -’切换用户的同时也切换了环境变量,所以一般推荐使用 ‘su -’...
  • 参考[1],Ubuntu18.04 没有 /etc/rc....执行 ls /lib/systemd/system 中的启动脚本,其中就有rc.local.service。 初始版本的rc.local.service并没有[Install]段,需要添加 [Install] WantedBy=multi-user.targe
  • Ubuntu18.04 不能像16.04 那样可以直接使用 /etc/rc.local 文件,需要设置 ...depth_1-utm_source=distribute.pc_feed_404.non...
  • ubuntu18.04设置开机自动启动脚本

    千次阅读 2020-09-26 16:32:18
    ubuntu作为服务器使用时,常常需要在机器重启时能自动启动我们开发的服务。 Ubuntu 16.10开始不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。 systemd 默认读取 /etc/...
  • 打开终端,执行命令:sudo visudo 在sudo那行添加一下NOPASSWD,如下,然后保存就可以了 # # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/...
  • 1.开机运行简单的处理开机运行的方法是修改rc.local文件。此文件位于/etc目录下面.在默认情况下,rc.local是一个空的脚。您只要修改它就可以了。要注意的是,在此文件中运行的命令其依赖的进程是否运行。本人再...
  • https://www.cnblogs.com/Deskew/p/13798595.html 也可以在“/etc/profile”下写脚本
  • Ubuntu 开机自动运行命令

    千次阅读 2020-07-18 16:35:01
    Ubuntu开机自动运行自定义的命令,可以采用两种方式: 第一种shell脚本方式 1、进入 /etc/init.d/ 目录 cd /etc/init.d/ 2、新建一个自定义名称的sh脚本,这里以 bt 名称为例建立一个 bt.sh 的脚本 vi XXX....
  • (一)开机自动运行脚本 1.进入root:在命令行敲入su:password(这里写你自己的密码) 2.创建程序,我这里是一个.py文件 /home/user/Code/485_Code.py(程序和脚本不要放在同一个路径下,不然会报错) 3.创建脚本:在...
  • Ubuntu 自动运行用户脚本的方法

    千次阅读 2019-07-25 19:08:33
    下面介绍两种随开机自启动脚本方法。 如果脚本功能不涉及桌面图像界面的话,就使用方法一,否则使用方法二。 方法一: 修改 /etc/rc.local 文件,该文件是Linux系统运行级别为2-5时启动调用的文件,可在该文件中...
  • 本人写了一个关于树莓派的温控风扇脚本,但是每次开机手动去运行较为麻烦,所以打算将其设置成开机自启。 开机自启脚本 fan_ctrl.py 路径 /home/pi/program/fan_ctrl.py 创建 service 配置文件 进入/usr/lib/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,105
精华内容 4,842
关键字:

ubuntu开机自动运行脚本