ubuntu16.04自启动脚本


一、添加脚本

  1. 进入到/etc/init.d/目录下编写脚本。
cd /etc/init.d
sudo gedit hello.sh

比如自启动chrome浏览器

#! /bin/bash
### BEGIN INIT INFO
# Provides:          hello
# Required-Start:    $local_fs $network
# Required-Stop:	 $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: volume
# Description:       volume
### END INIT INFO

# command content
google-chrome https://blog.csdn.net/sandalphon4869
 
exit 0

PS:#! /bin/bashexit 0都不能删,前者是编译器,后者是退出符。中间的INFO部分是标准文件格式,不要删。
# Provides: hello后面的hello是要你自己给这个起的名字,和已存在的不一样就行。

  1. 给脚本赋权限
sudo chmod 777 hello.sh
  1. 自启动的先后顺序
sudo update-rc.d hello.sh defaults 100

100表示优先级,数越大执行的越靠后。

  1. 添加到自启动项中

方法一:终端中输入

gnome-session-properties

方法二:输入startup applications
在这里插入图片描述
进入后,Add按钮。
在这里插入图片描述
名字随便起,只要别和已有的开机项重复,命令就浏览刚才写的那个文件位置。然后Add添加。
在这里插入图片描述
ok,close
在这里插入图片描述

二、去除开机启动脚本

  1. 把顺序删了
cd /etc/init.d
sudo update-rc.d -f hello.sh remove
  1. 在自启动项中Remove
    在这里插入图片描述

  2. 如果不想保存脚本文件的话,可以把文件也删了

cd /etc/init.d
sudo rm -r -f hello.sh

三、打开新终端

1.阻塞式打开(顺序执行)

有的命令是阻塞式的。
阻塞的意思是,这个命令执行后,就会让后续命令一直等待此命令执行完成。
比如:打开浏览器

#! /bin/bash
### BEGIN INIT INFO
# Provides:          hello
# Required-Start:    $local_fs $network
# Required-Stop:	 $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: volume
# Description:       volume
### END INIT INFO

# command content
google-chrome https://blog.csdn.net/sandalphon4869
google-chrome https://blog.csdn.net/sandalphon4869

exit 0

效果是你打开了一个网页,然后如果关闭这个浏览器程序,第二条打开网页的命令就不会执行(终端上就是一直是第一个命令的执行状态,这个命令执行完后,才进入执行下一条)
在这里插入图片描述

2.非阻塞式打开(并发执行)

只要每次都打开一个新的终端就好了。

gnome-terminal -x 命令

比如:

#! /bin/bash
### BEGIN INIT INFO
# Provides:          hello
# Required-Start:    $local_fs $network
# Required-Stop:	 $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: volume
# Description:       volume
### END INIT INFO

# command content
gnome-terminal -e google-chrome https://blog.csdn.net/sandalphon4869
gnome-terminal -e google-chrome https://blog.csdn.net/sandalphon4869


exit 0

在这里插入图片描述
在这里插入图片描述

四、输密码sudo -S

echo "your_password" | sudo -S 命令

注意:每条需要root权限的都要这样,并不像平时的终端一样,输一个sudo密码后就不用输sudo了

例如:

#! /bin/bash
### BEGIN INIT INFO
# Provides:          hello
# Required-Start:    $local_fs $network
# Required-Stop:	 $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: volume
# Description:       volume
### END INIT INFO

# command content
gnome-terminal -e google-chrome
cd /etc/init.d
echo "ubuntu4869" | sudo -S cp hello.sh helloworld.sh
echo "ubuntu4869" | sudo -S rm -r -f helloworld.sh

exit 0

五、代码可执行文件

hello/home/volume/VSCode/Demo2_mySerial/build/hello

#! /bin/bash
### BEGIN INIT INFO
# Provides:          hello
# Required-Start:    $local_fs $network
# Required-Stop:	 $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: volume
# Description:       volume
### END INIT INFO

# command content
/home/volume/VSCode/Demo2_mySerial/build/hello

exit 0
发布了411 篇原创文章 · 获赞 144 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/sandalphon4869/article/details/103902465