iT邦幫忙

0

在樹梅派中的linux 開啟2個server

  • 分享至 

  • xImage

在電腦需要putty 2次到我的樹梅派中去啟動 我2個server
https://ithelp.ithome.com.tw/upload/images/20210428/20129366UJBcXtlDo9.png

現在想要樹梅派開機時自動去開2個server,想說用sh檔幫我操作,結果執行完一個server就停了,想說是否要開2個cmd視窗才能操作,有大大提供想法與資料給我參考嗎?
感謝!
https://ithelp.ithome.com.tw/upload/images/20210428/20129366o5vAdVFvur.png

看更多先前的討論...收起先前的討論...
一個server一個sh,放在sudo crontab -e 裡跑,一行跑一個,開機跑的crontab,只要在最後一行加 上

@reboot /root/a.sh
@reboot /root/b.sh
froce iT邦大師 1 級 ‧ 2021-04-28 13:13:51 檢舉
寫service啊...
https://blog.gtwang.org/linux/linux-basic-systemctl-systemd-service-unit-tutorial-examples/

crontab是定時任務,用途不太同
ccutmis iT邦高手 2 級 ‧ 2021-04-28 13:42:44 檢舉
他需要的會是 job control 的相關指令嗎?...
例如:
./run_first_server.sh[enter]
按 Ctrl+Z 把first_server移到背景執行
./run_second_server.sh[enter]
jobs[enter] 列出目前正在執行中的process

參考資訊:
https://www.thegeekdiary.com/understanding-the-job-control-commands-in-linux-bg-fg-and-ctrlz/
crontab 可在系統開機時,執行啟動時要加載的shell script或其他程式,一樣是在背景執行,不需要人為登入系統才會被執行,我寫的python很大一部份都是放在crontab的@reboot後面做啟動執行,碰不到什麼做service的高大上課題
froce iT邦大師 1 級 ‧ 2021-04-28 16:04:03 檢舉
service其實也不難...
但是service有很多好處
1. 看狀態比較容易
2. 可以設相依性,A service起來再起B service

然後如果是測試的話,應該是要像ccutmis大說的用背景執行的方式。
樓上大大好!
你們提出的方法試過了
1.目前crontab還沒試成功
2. job control 目前是可以在一個cmd視窗開啟2個server,不過以自動化來說需要按到鍵盤ctrl+z這動作可能要有方式解決
3.service方面我有看到一個文章看似符合https://blog.csdn.net/letterwhite/article/details/26026425
不過我看不太懂他這幾個參數是怎樣設定的
START=80
APP=mrelay
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
我裡面環境是linux延伸的openwrt
第一次使用所以不熟悉
Docker正解
ccutmis iT邦高手 2 級 ‧ 2021-04-29 09:01:53 檢舉
如果你的需求是可以開機自啟動或在背景常駐執行,那參考 japhenchen 或 froce 兩位大師的建議應該是都可以解。
我在前面提到的方式是預設人在電腦前操作,另外如果是一個script要同時執行幾個伺服器啟動 也可以不需要人在電腦前按'Ctrl'+'Z' ,只要在你的command 最末端加上一個 '&' 符號,舉個例我寫一個 test.sh 內容為:
python -m SimpleHTTPServer 8080 &
python -m SimpleHTTPServer 8090 &
python -m SimpleHTTPServer 9090 &

執行 test1.sh 結果:
Serving HTTP on 0.0.0.0 port 8080 ...
Serving HTTP on 0.0.0.0 port 9090 ...
Serving HTTP on 0.0.0.0 port 8090 ...
(用一個腳本執行三個伺服器)
這方式沒法用'jobs'查詢,可以用 'ps aux' 看到在已經有3個python的test server的process在背景執行,如果要刪除process可以用 kill PID,重開機後用這方式執行的process不會繼續在背景執行。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答