終于搞定了activemq的自動啟動,主要還是參考了題主的思路。
成都創(chuàng)新互聯(lián)-云計算及IDC服務(wù)提供商,涵蓋公有云、IDC機房租用、達(dá)州電信機房、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),咨詢熱線:18980820575
cp 到/etc/init.d目錄下的時候,啟動會提示找不到路徑等等問題,但是在安裝目錄啟動就可以,所以可以通過軟連接來實現(xiàn)啟動腳本:
ln -s /usr/local/activemq/bin/activemq /etc/init.d/
vi /etc/init.d/activemq
---------------------------------------------
# 第二行插入
# chkconfig: 345 63 37
# description: Auto start ActiveMQ
---------------------------------------------
然后就可以添加開機啟動了
chkconfig activemq on
chkconfig --list activemq
也可以正常用服務(wù)的命令啟動和停止
service activemq start
service activemq status
service activemq stop
留此備查。
screen命令類似于“虛擬桌面”的概念,可以啟動一個Linux下的虛擬桌面,在其中可以和普通終端一樣執(zhí)行各種命令。
如果系統(tǒng)中沒有screen命令,可以用 apt install screen 來進(jìn)行安裝。
screen命令的基本用法有:
screen 啟動一個虛擬桌面
在啟動后的虛擬桌面中,按Ctrl+a 然后d(注意這個過程中Ctrl一直按住,也就相當(dāng)于Ctrl+a 然后Ctrl+d),可以從虛擬桌面返回之前的終端,此時如果虛擬桌面中還有命令或進(jìn)程在執(zhí)行,將繼續(xù)執(zhí)行,即使退出了這個終端也仍將繼續(xù)執(zhí)行。這樣就實現(xiàn)了后臺執(zhí)行命令或服務(wù)。
如果再想要查看這個虛擬桌面中的情況,執(zhí)行screen -r即可。
如果有多個screen虛擬桌面在執(zhí)行中,可以用screen -ls列出所有的桌面,然后按照桌面開始的序號(例如是1234),執(zhí)行screen -r 1234或screen -x 1234就可以進(jìn)入該桌面查看,然后再用Ctrl+a,d命令組合退出桌面。
如果要真正退出虛擬桌面(結(jié)束該桌面及其中正在運行的進(jìn)程),在桌面中用exit命令退出即可。
如果要給啟動的虛擬桌面起一個名字,可以用類似 screen -S test 這樣的命令,這將啟動一個名為test的虛擬桌面,以后可以用screen -x test命令來進(jìn)入查看。
如果想要一條命令用screen啟動一個后臺進(jìn)程并且退出(保持后臺運行,類似于服務(wù)進(jìn)程),可以用類似下面的命令:
screen -dmS test top
這將啟動一個 名為 test 的虛擬桌面,然后在其中執(zhí)行top命令,然后退出該桌面。
這樣,我們再結(jié)合Linux中的啟動執(zhí)行方法,就可以制作自己的服務(wù)進(jìn)程了。
下面設(shè)置自啟動腳本的方法啟動僅供參考:
方法一:使用crontab
方法二:
很多時候需要Ubuntu在開機的時候執(zhí)行一些指定的命令,這里對操作方法進(jìn)行記錄。
在 /etc/init.d/ 中創(chuàng)建自己的開機運行腳本
# 這里的文件名 mystart 可以修改為任何你喜歡的名稱,但是必須放在/etc/init.d/目錄中
cd /etc/init.d
sudo vim /etc/init.d/mystart.sh
寫入需要執(zhí)行的命令,
#!/bin/bash
### BEGIN INIT INFO
# Provides:? ? ? ? ? tuzixini
# Required-Start:? ? $local_fs $network
# Required-Stop:? ? $local_fs
# Default-Start:? ? 2 3 4 5
# Default-Stop:? ? ? 0 1 6
# Short-Description: self define auto start
# Description:? ? ? self define auto start
### END INIT INFO
# 上面的部分也必須寫上,后面放上你需要開機執(zhí)行的命令,這里是掛載一個硬盤
sudo mount /dev/sdb1 /opt/disk
修改腳本文件權(quán)限(將命令中的mystart.sh替換成實際的腳本文件名稱)
sudo chmod 755 /etc/init.d/mystart.sh
加入開機啟動(將命令中的mystart.sh替換成實際的腳本文件名稱)
sudo update-rc.d mystart.sh defaults 90
ok,完成,后面系統(tǒng)啟動的時候就會自動運行這段命令。
下面是另一段參考:
第一步、先建立screen name
shellscreen -dmS test
第二步、發(fā)送要執(zhí)行的命令
shellscreen -r test -p 0 -X stuff "top"
第三步、發(fā)送一個回車符,讓top命令運行起來
shellscreen -r test -p 0 -X stuff $'\n'
參數(shù)說明:
-r 恢復(fù)/進(jìn)入一個screen
-p 0 指定第一個(從0開始)window,一個screen里可以有幾個window,這里只需要指定第一個,不然會在某些情況下不生效。
-X 執(zhí)行一個指定的screen支持的command
stuff 是-X的第一個參數(shù),也是screen支持的一個command,意思是粘貼一個string
"top" 是粘貼的string 內(nèi)容
$'\n' 是粘貼一個回車符進(jìn)去,以此來執(zhí)行screen里面的top命令
第一種情況:當(dāng)centOS 隨機啟動文件 /etc/rc.local 失效時請按如下修改:
1、echo /etc/rc.local /etc/profile ? source /etc/profile?注:當(dāng)執(zhí)行生效會看到效果(/etc/profile 文件在每個用戶登錄時會首先檢查并執(zhí)行)
2、reboot注:重新啟動檢測是否生效
第二種情況:echo /etc/rc.local ~/.bash_profile ? source /etc/profile。
第三種情況:在 /etc/init.d 目錄下增加對應(yīng)程序啟動腳本,然后重啟測試,內(nèi)容如下:chkconfig --add 腳本名(將該腳本注冊到系統(tǒng)服務(wù),此時直接輸入腳本可以直接運行)。
chkconfig 腳本名 on(將該服務(wù)加入隨系統(tǒng)開機啟動),添加自啟動,必須在腳本里面加入chkconfig 啟動順序,才能加入進(jìn)去。
/etc/rc.local 中部分命令無法執(zhí)行。
在linux系統(tǒng)中添加隨系統(tǒng)啟動而自動運行的服務(wù),只需在/etc/rc.local 腳本文件中添加即可,當(dāng)運行的命令或程序不帶路徑時,例如:
#!/bin/bash
distccd --user nobody --allow 10.10.98.0/24 --log-file=/var/log/distcc.log --verbose --daemonloadavg? -s 10.10.98.20 /dev/null 21
注意,distccd、loadavg命令存放在/usr/local/bin/目錄下
在系統(tǒng)執(zhí)行這些命令時將報錯,無法正常執(zhí)行!
由于在執(zhí)行rc.local腳本時,PATH環(huán)境變量未全部初始化,目錄/usr/local/bin/ 需在執(zhí)行/etc/profile 后才被添加到環(huán)境變量PATH中。
解決方法:在 /etc/rc.local 執(zhí)行 /usr/local/bin/ 目錄中的命令需要使用絕對路徑。
1、使用runlevel或者who -r查看服務(wù)器的運行級別,根據(jù)運行級別查看/etc/rc.d/rcX.d/S99local - ../rc.local,所指向的rc.local文件位置是否正確。一般是正確的
默認(rèn)在/etc/rc.d/rc.local下面,/etc/rc.local只是它的一個symlink。
2、注意在rc.local中的腳本盡量使用絕對路徑,腳本要加執(zhí)行權(quán)值,腳本使用的服務(wù)和環(huán)境變量必須先加載,否則腳本會執(zhí)行錯誤而退出。
3、理解linux啟動的流程,即init腳本先執(zhí)行,最后再執(zhí)行rc.local中的命令。
4、要使用普通用戶的環(huán)境變量需要在rc.local中使用export var=xxx先導(dǎo)出或者使用source /etc/profile,使環(huán)境變量生效才能使用,或者是sleep 10 (以s為單位),等其他的必須服務(wù)啟動后。
5、在rc.local中的腳本不能執(zhí)行時,我們可以在腳本中使用set -x打開腳本的調(diào)試功能,并且將輸出重定向到一個文件中,便于查看出錯原因。如/root/echo.sh /root/debug.txt
再執(zhí)行相關(guān)的腳本命令部分。
linux啟動app命令:做 Linux 嵌入式開發(fā),經(jīng)常會遇到要設(shè)置自己的應(yīng)用程序在系統(tǒng)開機的時候自動啟動,并且一般情況我們不想安裝一些額外的軟件去實現(xiàn)此種需求。那么直接根據(jù)當(dāng)前系統(tǒng)自帶的默認(rèn)的一些工具實現(xiàn)用戶軟件的開機自啟動。
??本次測驗的系統(tǒng)環(huán)境為 Ubuntu 16.04 LTS,測試內(nèi)容均得到正確的驗證,如果其他環(huán)境出現(xiàn)不一致的現(xiàn)象,請查閱相關(guān)的差異。
??比如先要實現(xiàn)下面的應(yīng)用程序的開機自啟動(實現(xiàn)的代碼最下面給出,有需要的可以查看):
1. 應(yīng)用程序的名稱:app.bin
2. 應(yīng)用程序的保存路徑:/home/ubuntu/app/ 下
3. 應(yīng)用程序的工作路徑:/home/ubuntu/app/ 下
本周我們學(xué)習(xí)了如何使用Linux編輯腳本程序,當(dāng)我們編寫好腳本的時候,我們需要返回終端界面,使用各種編譯器運行程序,但是有時候我們需要在系統(tǒng)開機的時候就自動運行這些程序,下面我們就來看一下在Linux下將腳本設(shè)定成開機自動運行的方法。
Linux在啟動時,會自動執(zhí)行/etc/rc.d目錄下的初始化程序,因此我們可以把啟動任務(wù)放到該目錄下。假設(shè)我們需要運行的腳本文件是test1目錄下的test.py。
在系統(tǒng)中找到/etc/rc.local文件,系統(tǒng)會根據(jù)該文件來啟動所指定的腳本或命令。
我們需要用超級用戶登錄,并在上述文件最后添加需要運行的腳本文件。
隨后cd /home/test1返回test1目錄以對其進(jìn)行更改。?
su test1 -c "python /home/test1/test.py" --把要執(zhí)行的命令作為一個參數(shù)傳遞級su
下面我們就可以實現(xiàn)這個腳本的開機自動運行。
1.以root身份登錄linux系統(tǒng),啟動終端,輸入命令:vi #47;boot#47;grub#47;grub.conf,文件內(nèi)容如下:
#boot=#47;dev#47;sdadefault=0 (默認(rèn)啟動哪個系統(tǒng)的設(shè)置,此處默認(rèn)啟動linux系統(tǒng))
timeout=5 (啟動系統(tǒng)過程中,等待的時長單位:秒,讓用戶可手動選擇啟動系統(tǒng))。
2.修改后保存文件,重啟系統(tǒng),就可以進(jìn)入windows系統(tǒng)了,如果想調(diào)整GRUB中的系統(tǒng)順序和添加刪除系統(tǒng)名稱,修改grub.conf文件中的title就可以了。
Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。
Windows是窗戶的意思。另外還有微軟公司推出的視窗電腦操作系統(tǒng)名為Windows。隨著電腦硬件和軟件系統(tǒng)的不斷升級,微軟的Windows操作系統(tǒng)也在不斷升級,從16位、32位到64位操作系統(tǒng)。