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

###########################################################

 

posted @ 2020-04-16 17:22  wangaolin  阅读(6823)  评论(0编辑  收藏  举报