ubuntu16自启动shell脚本_ubuntu开机自启动shell脚本 - CSDN
精华内容
参与话题
  • 1、新建个shell脚本文件(例starter.sh) 内容如下 #!/bin/sh ### BEGIN INIT INFO # Provides: starter # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 ...

    1、新建个shell脚本文件(例starter.sh)

    内容如下

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          starter
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: start starter
    # Description:       start starter
    ### END INIT INFO
    
    su --l username
    
    sh /home/username/workspace/apache_tomcat_v2/bin/startup.sh
    
    cd /home/username/workspace/node-v9.9.0-linux-x64/bin/
    
    node /home/username/project/testing/python/test1.js&
    
    node /home/username/project/testing/python/test2.js
    
    exit 0

    其中starter是你的脚本文件名,

    ### END INIT INFO下是你要写的shell脚本,然后需要开机自启的

    2、设置权限

    sudo chmod 755 starter.sh  

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

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

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

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

    后面90数字是你设置的启动序号,越大级别越低,执行越晚

    ps:如果想要移除开机自启脚本

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

    扩展资料

    SU:( Switch user切换用户),可让一个普通用户切换为超级用户或其他用户,并可临时拥有所切换用户的权限,切换时需输入欲切换用户的密码;也可以让超级用户切换为普通用户,临时以低权限身份处理事务,切换时无需输入欲切换用户的密码。

    参数

    -c<指令>或--command=<指令>:执行一个指令后就恢复原来的身份;

    -f或--fast:使shell不用读取启动文件,适用于csh和tcsh;

    -,-l,--login:切换用户时,使环境变量(home,shell,user,logname,path等)和欲切换的用户相同、

    不使用则取得用户的临时权限;

    -m,-p,:变更身份时,保留环境变量不变;

    -s<shell>,--shell=<shell>:指定执行命令的shell;

    --help:显示帮助;

    --version:显示版本信息;

    用户账户:指定欲切换用户,默认切换为root。

    注:root权限极高,几乎可以做任何事,谨慎使用,平时使用普通用户登录,必要时临时切换为root,用完即切换回普通用户。

    参考资料:百度百科—su

    或直接在/etc/rc.local文件中添加shell指令

    展开全文
  • 1 创建服务脚本 cd / lib/systemd/system/ 创建服务脚本 video_detect.service [Unit] Description=video_detect After=network.target [Service] ExecStart=sh start.sh ...2 设置脚本开机自启动 sud...

    1 创建服务脚本
    cd / lib/systemd/system/ 创建服务脚本 video_detect.service

    [Unit]
    Description=video_detect
    After=network.target

    [Service]
    ExecStart=sh start.sh

    [Install]
    WantedBy=multi-user.target

    2 设置脚本开机自启动
    sudo systemctl enable video_detect.service

    3 常用命令
    重新加载service文件:systemctl daemon-reload
    启动一个服务:systemctl start video_detect.service
    关闭一个服务:systemctl stop video_detect.service
    重启一个服务:systemctl restartvideo_detect.service
    显示一个服务的状态:systemctl status video_detect.service
    在开机时启用一个服务:systemctl enable video_detect.service
    在开机时禁用一个服务:systemctl disable video_detect.service
    查看服务是否开机启动:systemctl is-enabledvideo_detect.servicee
    查看已启动的服务列表:systemctl list-unit-files|grep enabled
    查看启动失败的服务列表:systemctl --failed

    展开全文
  • ubuntu16.04 .sh脚本自启动 (1) 左上角 search your computer中输入startup Applications 找到开机自启动选项点击打开. (2) 点击add -&gt; 在Name中写入你要启动的程序或脚本的名字(你自己定义) Command中写入...

    ubuntu16.04 .sh脚本自启动

    (1) 左上角 search your computer中输入startup Applications 找到开机自启动选项点击打开.
    (2) 点击add -> 在Name中写入你要启动的程序或脚本的名字(你自己定义) Command中写入gnome-ternimal -x bash -i -c"/home/xx/Documents/xx.sh"-> 点击add 就成功添加了xx.sh开机自启.
    参考:https://blog.csdn.net/liurunjiang/article/details/78595073?utm_source=blogxgwz0

    gnome-terminal[基本用法]

    gnome-terminal命令用于打开一个新的终端,直接在命令行

    $ gnome-terminal
    

    就可以打开一个新的终端,有一些常用参数:
    打开后自动最大化

    $ gnome-terminal --maximize
    

    打开后全屏

    $ gnome-terminal --full-screen
    

    设置标题

    $ gnome-terminal --title="new title"
    

    打开多个终端,多个tab

    $ gnome-terminal --window --window #打开两个
    $ gnome-terminal --window --tab --window --tab --tab #打开两个,第一个两个tab,第二个3个tab
    

    设置打开的位置和大小(宽度x高度+左侧偏移量+上方偏移量)

    $ gnome-terminal --geometry=80x25+10+10
    

    [启动后自动执行命令]
    有两个参数可以实现这个功能,-e和-x,这两个区别在于:
    -e 可以出现多次,如果在所有–window前面,表示对所有window和tab起作用,
    如果在–window或者–tab后面,表示只针对这个tab执行,要注意-e后面只能有一个参数
    也就是说如果有空格,需要用引号,具体见后例
    -x 只能出现一次,在-x后面的所有内容,均认为是要执行的命令,所以可以出现空格
    这些命令是针对所有tab都执行的
    比如:

    $ gnome-terminal -e ls
    $ gnome-terminal -x ls
    

    这两个的执行结果都一样,就是新的终端闪一下就没了,有几种办法:
    一种是修改terminal的配置,在terminal点右键,选择Profiles->Profile Preferences
    然后找到Title and Command,里面有一项When command exits,后面选择为
    Hold the terminal open,然后就可以了
    第二种是把结果重定向给less,这样less执行完之前,是不会退出的

    $ gnome-terminal -x ls|less
    

    第三种是在bash里面再启用一个bash

    $ gnome-terminal -x bash -c "ls; exec bash"
    $ gnome-terminal -e 'bash -c "ls; exec bash"'
    

    注意最后一个命令是exec bash,如果直接写bash也行,相当于开了一个子shell,这样有个
    缺点,就是直接按关闭按钮的话,会提示还有程序在运行
    需要注意的是,这里执行的命令,在调用.bashrc之前,所有.bashrc的所有配置都无效
    如果需要用到.bashrc里面的内容,有个变通的办法,在.bashrc最后加上一句
    --------------------.bashrc--------------------
    其他内容
    #最后加上这句

    evel "$RUN_AFTER_BASHRC"
    

    然后在写命令的时候,修改RUN_AFTER_BASHRC这个变量,就可以实现让.bashrc调用这个命令

    $ gnome-terminal -x bash -c 'export RUN_AFTER_BASHRC="ls --help"; exec bash'
    

    或者下面的写法比较简单(注意对所有tab生效),也不会自动关闭了

    $ RUN_AFTER_BASHRC="ls" gnome-terminal
    

    来源:http://superuser.com/questions/198015/open-gnome-terminal-programmatically-and-execute-commands-after-bashrc-was-execu
    [打开一个terminal并预先输好一段文字]
    来源:http://askubuntu.com/questions/5363/how-to-start-a-terminal-with-certain-text-already-input-on-the-command-line
    这个需求比较偏门,解决方法不错,就是利用expect这个工具,最后的程序如下
    ----------------------------myprompt-----------------------

    #!/usr/bin/expect
    #trap sigwinch and pass it to the child we spawned
    #this allows the gnome-terminal window to be resized
    trap {
      set rows [stty rows]
        set cols [stty columns]
        stty rows $rows columns $cols < $spawn_out(slave,name)
    } WINCH
    set arg1 [lindex $argv 0]
    # Get a Bash shell
    spawn -noecho bash
    # Wait for a prompt
    expect "$ "
    # Type something
    send $arg1
    # Hand over control to the user
    interact
    exit
    

    调用方法(注意文件的路径要写全):

    gnome-terminal -e "./myprompt \"my text to be posted\""
    

    [添加一个”用vim打开“的脚本]
    研究这个gnome-terminal的目的,是为了写一个脚本,实现右键选一个文件,然后可以
    用vim打开
    最后的脚本文件如下(两种方法都写了)
    -------------------~/.gnome2/nautilus-scripts/OpenWithVIM----------------------

    #!/bin/bash
    gnome-terminal -x bash -c 'export RUN_AFTER_BASHRC="vim $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"; exec bash'
    #RUN_AFTER_BASHRC="vim $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" gnome-terminal
    

    不过选中多个文件还不行,因为也没这个需要,所以暂时就这样了

    参考:https://blog.csdn.net/zong596568821xp/article/details/78623130

    展开全文
  • ubuntu编写开机自启动shell脚本

    万次阅读 2013-05-01 17:20:09
    1、首先编写一个简单的shell脚本  vimtest.sh(不习惯使用vim可以使用nano)  进入vim后按i键,然后输入(#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。) #!/bin/bash echo"Helloworld!...

    1、首先编写一个简单的shell脚本


        vimtest.sh(不习惯使用vim可以使用nano)
        进入vim后按i键,然后输入(#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。)
    #!/bin/bash 
    echo"Helloworld!"
    
    filename=`date"+%Y%m%d"` 
    echo$filename
        然后先Esc再shift+z两次(保存)
        在命令行输入:    chmod  +x test.sh   (赋予执行权限)
        运行:./test.sh

        查看命令的路径:whichls(假设查看ls命令的路径)
        #后面的内容表示注释,要养成写注释的良好习惯


        更多shell编程知识       shell编程简介


    2、设置脚本开机自启动


    方案一:

        编辑 /etc/init.d/rc.local 文件,在最后加上你的脚本即可。
        比如:我已经编写了一个脚本apk.sh,存放在/home/apk/下面
                在Ubuntu终端输入:    sudo nano /etc/init.d/rc.local
                在结尾出加入: sh  /home/apk/shell.sh                 //即可开机自动加载脚本

    方案二:


        1) 将你的启动脚本复制到 /etc/init.d目录下
                sudo cp test.sh /etc/init.d/

        2)执行如下命令将脚本放到启动脚本中去:
                cd /etc/init.d
                sudo chmod 755 /etc/init.d/test.sh
                sudo update-rc.d test.sh defaults95

    注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:
    
            update-rc.d: warning: /etc/init.d/test missing LSB information
    update-rc.d: see
     
    卸载启动脚本的方法:
                cd /etc/init.d
                sudo update-rc.d -f test.shremove


    注意事项:

        开始我使用forever命令写了一个脚本,如下:
                #!/usr/local/bin/forever
                forever start /home/apk/apkAnalysis/app.js

        可是不论我使用什么方法它都启动不起来,后来发现它少了一个sudo权限:
                #!/usr/local/bin/forever
                sudo forever start /home/apk/apkAnalysis/app.js

        所以在配置开机启动的时候一定要注意sudo的使用。

        查看系统启动的日志:cat /var/log/boot.log
        开始是一直都起不来,看了下日志,发现文件不存在;登录之后查看文件是存在的,可能是执行启动脚本的时候用户目录还没有mount上来

    然后把工程放到srv目录下面就可以开机自启动了。
    改一下权限sudo chmod 775 /srv/
    展开全文
  • ubuntu自启动shell脚本

    2013-11-08 15:31:01
    2.使用update-rc.d 完成自启动 启动和关闭顺序为90,级别默认 update-rc.d <basename> defaults 90 默认 update-rc.d XXX defaults A启动后B才能启动,B关闭后A才关闭 update-rc.d A de...
  • ubuntu中编写shell脚本开机自动启动

    千次阅读 2019-07-14 02:20:59
    编写脚本是为了不用手动去开启各种服务(也是为了偷懒哈哈) 1.进入终端输入 # 创建一个后缀为.sh的脚本文件 touch test.sh # 编辑脚本 vim test.sh # test.sh编写脚本内容 2.编写test.sh脚本 1 #!/bin...
  • ubuntu 开机启动shell脚本

    千次阅读 2018-05-30 17:11:54
    1.创建shell启动脚本test2.将启动脚本复制到 /etc/init.d 目录下3.设置脚本文件权限sudo chmod 755 /etc/init.d/test4.设置脚本启动sudo update-rc.d test defaults 95 //95 为启动优先级,越小优先级越高// 执行后...
  • 1、方案参考:https://wangheng.org/ubuntu-to-add-boot-script.html/2、遇到的问题【Linux】执行shell脚本出现异常:bad interpreter: No such file or directory如何解决参考方案:...
  • Ubuntu18.04 开机自启动脚本

    千次阅读 2019-04-17 20:03:54
    Ubuntu没有自带其他linux版本自带的rc.local文件的开机自启动方法,所以要自己生成rc.local文件: 生成rc-local.service文件将一下内容复制进rc-local…service文件 sudo gedit /etc/systemd/system/rc-local ....
  • gnome-terminal方法间接启动法:直接启动法:3. rc.local方法update-rc.d的详细参数 测试脚本: #!/bin/bash # test.sh cd /home/Desktop/ ls echo "OK!" exit 0 1. /etc/init.d方法 sudo mv test.sh /etc/init...
  • 有时候我们想要脚本开机自动运行,那么就需要设置开机自启动脚本。首先将脚本复制或者软连接到/etc/init.d/目录下然后update-rc.d xxx defaults NN命令(NN为启动顺序)将脚本添加到初始化执行的队列中去。注意如果...
  • ubuntu 18.04开机自启动脚本

    千次阅读 2019-06-29 11:14:27
    16.04以上就要用service开机启动了 sudo vim /etc/systemd/system/rc.service 内容为: [Unit] Description=/etc/rc Compatibility ConditionPathExists=/etc/rc [Service] Type=forking ExecStart=/etc...
  • 最近在帮学长写一个用python+PyQt5写的一个程序,想要在树莓派上设置自启动这个图形程序,查了很多的网页,试了很多方法,都不好使,后来看了一个教程,设置成功启动了那个sh脚本文件,但是图形化界面的程序还是没用...
  • ubuntu18.04 开机自动启动脚本的坑

    千次阅读 2019-08-20 18:51:54
    哇 这个真的难受 找了半天的方案不能用 自暴自弃用的图形界面设置 转载于:https://www.cnblogs.com/bugcreator/p/11178670.html
  • Ubuntu开机自启动脚本

    2018-10-01 22:17:09
    安装启动脚本 创建脚本 在/etc/init.d 目录下创建脚本文件test. !注意脚本文件格式必须以 #!bash/sh 开头 设置脚本文件test权限 $sudo chmod 755 test 运行update-rc.d 添加脚本: $sudo update-rc.d test ...
  • 背景 开发过程中,有时需要一些sh脚本、python脚本、命令等在开机的时候自动执行;通过查看网上的许多文章和教程,得出了两种比较便捷的...这种方法比较适合于ubuntu16及之前的版本;毕竟像ubunutu18本来是不带...
  • 通常服务器开启后需要输入一大堆繁琐的进入文件、启动服务等命令,每天如此就会逼...Shell脚本挺身而出: 实现:1、配置开机root账号登陆。 (1)先切换到root账号。 (2)进入vim /etc/lightdm/lightdm.conf (3)...
  • 主要介绍了ubuntu中编写shell脚本开机自动启动,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Linux下开机自启动自定义shell脚本

    千次阅读 2018-07-04 16:09:24
    一、Ubuntu下1、方法一,编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本,所以我们可以直接在/etc/rc.local中添加启动脚本。【进入到/etc/rc5.d下,发现S99rc.local,即开机软链接启动顺序99,在...
  • Ubuntu 18.04 设置开机自动执行脚本

    千次阅读 2019-08-06 09:11:54
    前言 Ubuntu18.04 默认是没有 /etc/rc.local 这个文件的,需要自己创建 systemd 默认读取 /etc/...执行 ls /lib/systemd/system 你可以看到有很多启动脚本,其中就有我们需要的 rc.local.service 查看rc.local...
1 2 3 4 5 ... 20
收藏数 23,763
精华内容 9,505
关键字:

ubuntu16自启动shell脚本