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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM