zoukankan      html  css  js  c++  java
  • Ubuntu 设置系统环境变量和开机自启动

    Ubuntu 设置系统环境变量和开机自启动

    Ubuntu系统环境变量详解

    参考这篇文章,讲的非常详细

    开机自启动

    在Linux下设置软件开机自动有三种方式:

    1、 自动启动应用程序——rc.local脚本
    2、 自动启动服务——update-rc.d
    3、 启动应用程序首选项
    3、 使用Systemd

    下面来逐一界面这三种方式:

    一、自动启动应用程序——rc.local脚本

    rc.local脚本是一个Ubuntu开机后会自动执行的脚本,在该脚本内添加命令行,开机时会自动执行。

    • 脚本路径/etc/rc.local

    • 需要root权限才能修改。

    添加命令

    打开文件,在exit 0前添加要执行的命令,里面可以直接写命令或者执行Shell脚本文件sh。

    如下,添加的5行命令

    第1,2行是用于输出log 的
    第4,5行,是启动程序的

    #!/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.:
    /bin/bash /usr/local/XX-Net-3.10.4/xx_net.sh 1>> /etc/mylog   # send stderr from rc.local to a log file 
    2>&1   # send stdout to the same log file 
    set -x    # tell sh to display commands before execution 
    sudo miredo
    sudo /usr/local/XX-Net-3.10.4/xx_net.sh start
    exit 0

    这里的设置开机自动执行的sudo命令也是可以执行的

    rc.local命令不执行,程序不启动的问题

    1、如下面所示,添加log,查看程序执行情况

    2、rc.local文件头部/bin/sh修改为/bin/bash

    3、如果是执行sh文件,那么要赋予执行权限sudo chmod +x xxx.sh,然后启动时加上sudo sh xxx.sh

    二、自动启动服务——update-rc.d

    使用 update-rc.d增加开机启动服务,给Ubuntu添加一个开机启动脚本,操作如下:

    1、新建个脚本文件new_service.sh

    #!/bin/bash
    # command content
    
    exit 0

    2、设置权限

    sudo chmod 755 new_service.sh
    #或者
    sudo chmod +x new_service.sh

    3、把脚本放置到启动目录下

    sudo mv new_service.sh /etc/init.d/

    4、将脚本添加到开机启动脚本

    执行如下指令,在这里90表明一个优先级,越高表示执行的越晚

    cd /etc/init.d/
    sudo update-rc.d new_service.sh defaults 90

    5、移除开机启动脚本

    sudo update-rc.d -f new_service.sh remove

    6、通过sysv-rc-conf来管理上面启动服务的启动级别等,是否是开机启动

    sudo sysv-rc-conf 

    7、update-rc.d的详细参数

    使用update-rc.d命令需要指定脚本名称和一些参数,它的格式看起来是这样的(需要在 root 权限下):

    update-rc.d [-n] [-f] <basename> remove
    update-rc.d [-n] <basename> defaults
    update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
    update-rc.d <basename> start|stop <NN> <runlevels>
    • -n: not really
    • -f: force

    • disable|enable:代表脚本还在/etc/init.d中,并设置当前状态是手动启动还是自动启动。

    • start|stop:代表脚本还在/etc/init.d中,开机,并设置当前状态是开始运行还是停止运行。(启用后可配置开始运行与否)

    • NN:是一个决定启动顺序的两位数字值。(例如90大于80,因此80对应的脚本先启动或先停止)

    • runlevels:则指定了运行级别。

    实例:

    (1)、添加一个新的启动脚本sample_init_script,并且指定为默认启动顺序、默认运行级别:

    update-rc.d sample_init_script defaults
    上一条命令等效于(中间是一个英文句点符号):
    update-rc.d sample_init_script start 20 2 3 4 5 . stop 20 0 1 6

    (2)、安装一个启动脚本sample_init_script,指定默认运行级别,但启动顺序为50:

    update-rc.d sample_init_script defaults 50

    (3)、安装两个启动脚本A、B,让A先于B启动,后于B停止:

    update-rc.d A 10 40
    update-rc.d B 20 30

    (4)、删除一个启动脚本sample_init_script,如果脚本不存在则直接跳过:

    update-rc.d -f sample_init_script remove

    这一条命令实际上做的就是一一删除所有位于/etc/rcX.d目录下指向/etc/init.d中sample_init_script的链接(可能存在多个链接文件),update-rc.d只不过简化了这一步骤。

    (5)禁止Apache/MySQL相关组件开机自启:

    update-rc.d -f apache2 remove
    update-rc.d -f mysql remove

    8、服务的启动停止状态

    sudo service xxx status
    sudo service xxx start
    sudo service xxx stop
    sudo service xxx restart

    9、查看全部服务列表

    sudo service --status-all

    三、启动应用程序首选项

    可以通过在控制台运行 gnome-session-properties
    就会打开下面的窗口,对应桌面上的启动应用程序
    这里写图片描述

    四、使用Systemd

    Systemd 的使用有些复杂,未亲自尝试。有兴趣的小伙伴,可以来这里学习一下Systemd 入门教程:命令篇

    参考:
    Ubuntu下添加开机自动脚本

    Ubuntu下添加开机启动项的2种方法

    Ubuntu添加开机自动启动程序的方法

    Ubuntu 16.04设置rc.local开机启动命令/脚本的方法

    ubuntu如何用自启动软件,用root启动的那种(sudo)

    ubuntu如何用自启动软件,用root启动的那种(sudo)

    Ubuntu 设置 sudo 开机自启动项 无需输入密码

    在ubuntu中如何管理startup application

    XX-Net Ubuntu 16.04下开机自启动设置求助

  • 相关阅读:
    【GIT-精讲】从零玩转Git-基础理论
    【fmjava】 面试题突击训练-Java基础语法篇01
    【笔记】springSecurity-OAuth2.0-授权模式演示
    【难受】SpirngCloud-Alibaba-nacos跨服务器访问接口的问题
    Python编程题汇总(持续更新中……)
    Python编程题14--随机分配礼物
    Python编程题13--判断两个升序列表,其中一个是另外一个的子集
    Python编程题12--列表中比前面元素都大,比后面元素都小的数
    Python编程题11--找出100以内的质数
    Python编程题10--找出和为N的两个数
  • 原文地址:https://www.cnblogs.com/52forjie/p/10064588.html
Copyright © 2011-2022 走看看