ubuntu中编写shell脚本开机自动启动
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,用完即切换回普通用户
————————————————
版权声明:本文为CSDN博主「沧海一株莲」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42393859/article/details/88170761
#####################################################
编写脚本是为了不用手动去开启各种服务(也是为了偷懒哈哈)
1.进入终端输入
# 创建一个后缀为.sh的脚本文件
touch test.sh
# 编辑脚本
vim test.sh
# test.sh编写脚本内容
2.编写test.sh脚本
1 #!/bin/bash
2
3 ### BEGIN INIT INFO
4 # Provides: test
5 # Required-Start: $remote_fs $syslog
6 # Required-Stop: $remote_fs $syslog
7 # Default-Start: 2 3 4 5
8 # Default-Stop: 0 1 6
9 # Short-Description: start test
10 # Description: start test
11 ### END INIT INFO
12
13 #此处编写脚本内容
14 cd /home/Desktop/
15 ./test.sh
16 exit 0
以#!/bin/bash开头 中间写脚本内容 exit0结尾
3.移动test.sh文件到/etc/init.d目录下
# 移动文件
sudo mv test.sh /etc/init.d/
# 给文件增加权限
chmod +750 test.sh
# 设置开机自动启动
sudo update-rc.d test.sh defaults
4.这样一个开机自动化脚本就完成咯
————————————————
版权声明:本文为CSDN博主「python_sudo_攻城狮」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42719242/article/details/95822518
####################################################
从道理上来讲,Ubuntu开机应该是能够设置执行一些脚本的,事实上确实如此,网上给出了很多解决的方案,基本上是分为两种,
第一种是编辑/etc/下的rc.local脚本,
然后把对应的需要执行的脚本写在exit 0前面,在ubuntu16.06上亲测无效
第二种则是编辑一个shell脚本,然后在shell脚本中写入自己开机之后需要执行的命令,然后把该脚本拷贝进/etc/init.d/文件夹下,赋予可执行的权限,然后一行命令sudo update-rc.d 你的脚本 defaults 90
比如我这里先写一个开机自动挂载两个盘以及frpc内网穿透的服务,
然后命名为mount_and_frpc.sh,从桌面拷贝到文件夹/etc/init.d/下:sudo cp ./mount_and_frpc.sh /etc/init.d/,并且赋予可执行权限sudo chmod 775 ./mount_and_frpc.sh
然后执行该命令:sudo update-rc.d mount_and_frpc.sh defaults 90,然后会报如下错误:missing LSB tags and overrides,这参考下面这俩个链接
http://blog.bbzhh.com/index.php/archives/134.html, http://www.linuxdiyf.com/linux/26896.html
个时候需要在执行的命令前面加上这样一段话:
然后执行:sudo update-rc.d mount_and_frpc.sh defaults 90,重启reboot即可
同样的,如果想取消该开机自启项,需要执行如下命令
cd /etc/init.d
sudo update-rc.d -f mount_and_frpc.sh remove
原文链接:https://www.linuxidc.com/Linux/2017-09/147178.htm
###########################################################