当系统使用shell和crontab重启时,我们试图启动一个go程序,该程序在指定端口上运行localhost。以下是到目前为止我们已经完成的工作:
#!/bin/sh echo "go program started at" `date` >> /Users/nicolas/goinit1.txt cd /Users/nicolas/go/src/goinit go build exec goinit -port 2000
sudo chmod u+x goinit.sh
sudo ./goinit.sh
直到此处一切正常。当我们打开浏览器并启动localhost:2000时,程序将按预期工作。
@reboot /Users/nicolas/goinit.sh
当我们重新启动时,系统脚本会运行,但浏览器中看不到任何内容。它只是显示了当我们打开浏览器并运行localhost:2000时找不到的文件。
我们对重启后无法提供文件进行了一些研究。
Why doesn't “cd” work in a shell script?
由于我们是shell脚本的新手,因此sub shell的概念有点令人困惑。我们尝试了许多示例来使此Shell脚本正常工作,但没有一个对我们有帮助。
注意:所有这些操作都是在Mac OS中完成的。