簡體   English   中英

bash 腳本在啟動時自動運行,制作屏幕,執行命令並分離

[英]bash script to auto run on boot, make screen, execute a command and detach

我正在使用 Centos 7 並且在啟動時我想:

  • 做一個屏幕
  • 執行命令:osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm
  • 從屏幕上分離(可能不需要,只要我將來運行后可以自己訪問它)

這是我考慮過的事情,雖然不正確並且行不通

文件名:mapstart.sh 文件內容:

#!/bin/bash
/usr/bin/screen -dmS mapapi osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm

在腳本的幫助下。 我不確定使用 centos 7 在啟動時運行它的最佳方法。

感謝您的幫助和投入。

對於那些想知道的人。 問題出在 OSRM 和 centos 上。 我能夠使用所有內容的完整路徑以及 crontab -e 中的以下內容運行它

為了獲得 osrm-backend 的完整路徑,我運行了以下命令:

which osrm-routed

它返回了以下結果:

/usr/local/bin/osrm-routed

然后,這使我能夠添加我試圖從 crontab -e 運行的命令的完整路徑,這是必需的。 從那里它可以在 crontab -e 中運行以下內容

@reboot /usr/bin/screen -dm -S pistartup /usr/local/bin/osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm

分解以上所有內容:

僅在重新啟動時運行命令:

@reboot

屏幕命令的完整路徑:

/usr/bin/screen

創建屏幕名稱為 pistartup 並分離:

-dm -S pistartup 

我想在屏幕內運行的特定命令:

/usr/local/bin/osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm

現在,當機器重新啟動時。 它創建了一個屏幕並運行我的命令。 手動恢復屏幕如果我願意,我可以發出以下命令:

screen -r pistartup

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM