一、添加脚本
- 进入到/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/bash
和exit 0
都不能删,前者是编译器,后者是退出符。中间的INFO
部分是标准文件格式,不要删。
# Provides: hello
后面的hello
是要你自己给这个起的名字,和已存在的不一样就行。
- 给脚本赋权限
sudo chmod 777 hello.sh
- 自启动的先后顺序
sudo update-rc.d hello.sh defaults 100
100
表示优先级,数越大执行的越靠后。
- 添加到自启动项中
方法一:终端中输入
gnome-session-properties
方法二:输入startup applications
进入后,Add按钮。
名字随便起,只要别和已有的开机项重复,命令就浏览刚才写的那个文件位置。然后Add添加。
ok,close
二、去除开机启动脚本
- 把顺序删了
cd /etc/init.d
sudo update-rc.d -f hello.sh remove
-
在自启动项中
Remove
-
如果不想保存脚本文件的话,可以把文件也删了
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