首页 > 解决方案 > 如何使用 shell 脚本在重新启动时在 localhost 服务器上启动程序

问题描述

当系统使用 shell 和 crontab 重新启动时,我们正在尝试启动一个在指定端口上运行 localhost 的 go 程序。以下是我们迄今为止所做的工作:

  1. 创建了一个名为 goinit.sh 的 shell 文件。我们在其中写了
#!/bin/sh
echo "go 程序开始于" `date` >> /Users/nicolas/goinit1.txt
cd /Users/nicolas/go/src/goinit
去建造
执行 goinit -port 2000
  1. 我们已经使用命令为 goinit.sh 创建了可执行文件
sudo chmod u+x goinit.sh
  1. 然后我们手动启动脚本。使用
须藤 ./goinit.sh

直到这里一切正常。当我们打开浏览器并启动我的 localhost:2000 时,我的程序按预期工作。

  1. 我们使用 crontab 以便在我的系统重新启动时运行我们的脚本文件。以下是用 crontab 编写的行。
@reboot /Users/nicolas/goinit.sh

当我们重新启动系统脚本运行但浏览器中什么都看不到。当我们打开浏览器并运行 localhost:2000 时,它只是显示找不到文件。

我们对重新启动时未提供的文件进行了一些研究。

为什么“cd”在 shell 脚本中不起作用?

由于我们是 shell 脚本的新手,因此子 shell 的概念有点令人困惑。我们已经尝试了许多示例来使这个 shell 脚本工作,但没有一个真正帮助我们。

注意:所有这些都是在 mac OS 中完成的。

标签: bashmacosshellupstart

解决方案


推荐阅读