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下开机自启动设置求助

  • 相关阅读:
    linux软件安装方式
    docker 安装 jenkins touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
    [ERR] Node goodsleep.vip:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
    Linux 常用命令 服务器间scp 用户 export 创建文件、软连接
    redis 安装 集群 主从 哨兵 docker
    WPF密码框中禁止复制、粘贴
    Application 统计在线人数
    【转义字符】HTML 字符实体&lt; &gt: &amp;等
    SQL语句统计每天的数据
    正则表达式计算代码数
  • 原文地址:https://www.cnblogs.com/52forjie/p/10064588.html
Copyright © 2011-2022 走看看