【问题标题】:bash script to auto run on boot, make screen, execute a command and detachbash脚本在启动时自动运行,制作屏幕,执行命令并分离
【发布时间】:2020-02-17 05:11:03
【问题描述】:

我正在使用 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 在启动时运行它的最佳方式。

感谢您的帮助和意见。

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为它与 unix.stackexchange.com/questions/78017/… 重复
  • 我已经尝试过答案,但是在 centos 7(或对我而言)上没有。
  • 例如。 crontab 中的以下内容不起作用。 @reboot /usr/bin/screen -d -m osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm

标签: linux server centos7


【解决方案1】:

对于那些想知道的人。问题在于 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

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2021-08-15
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多