如何使用Shell脚本重新启动在本地服务器上启动程序

时间:2019-01-01 15:24:13

标签: bash macos shell upstart

当系统使用shell和crontab重启时,我们试图启动一个go程序,该程序在指定端口上运行localhost。以下是到目前为止我们已经完成的工作:

  1. 创建了一个名为goinit.sh的外壳文件。我们在其中写过
#!/bin/sh
echo "go program started at" `date` >> /Users/nicolas/goinit1.txt
cd /Users/nicolas/go/src/goinit
go build
exec goinit -port 2000
  1. 我们已经使用命令为goinit.sh创建了可执行文件
sudo chmod u+x goinit.sh
  1. 然后我们手动启动脚本。使用
sudo ./goinit.sh

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

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

当我们重新启动时,系统脚本会运行,但浏览器中看不到任何内容。它只是显示了当我们打开浏览器并运行localhost:2000时找不到的文件。

我们对重启后无法提供文件进行了一些研究。

Why doesn't “cd” work in a shell script?

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

  

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

0 个答案:

没有答案