如何使用bash

时间:2018-05-18 16:09:47

标签: python bash port tornado

我有一个龙卷风服务器,我想在不同的端口上启动多个实例,所以我创建了以下bash文件来启动3个实例。

#!/bin/bash

#start tornado instances in different ports
python startup.py --port="8081"
python startup.py --port="8082"
python startup.py --port="8083"

如您所见,上面的代码存在问题,因为第一个命令将阻止第二个命令。 所以任何人都知道如何一起开始3? 提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您只需要在当前会话中运行它们,请在每行末尾添加&

python startup.py --port="8081" &
python startup.py --port="8082" &
python startup.py --port="8083" &

但使用systemdupstart或其他初始化系统会更方便,因为它为您提供了一种简便方法startstop和{{1你的实例。

如果你需要一个例子,我会更新这个答案。

更新

只要您使用的是OS X,就可以使用默认的初始化系统 - restart

第1步 - 为您的工作创建配置文件:

launchd

文件内容:

vim /Library/LaunchDaemons/my_job.plist

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>my.awesome.label</string> <key>ProgramArguments</key> <array> <string>/usr/bin/python</string> <string>/Users/ivanvinogradov/tort.py</string> </array> <key>OnDemand</key> <false/> <key>UserName</key> <string>ivanvinogradov</string> <key>StartInterval</key> <integer>60</integer> <key>StandardErrorPath</key> <string>/tmp/AlTest1.err</string> <key>StandardOutPath</key> <string>/tmp/AlTest1.out</string> </dict> </plist> 脚本的路径转到.py 放置将在<key>ProgramArguments</key>部分中运行作业的用户名 另请注意,<key>UserName</key>部分是必需的。

第2步 - 确保<key>Label</key>文件具有适当的权限:

.plist

第3步 - 开始和停止工作:

sudo chown root:wheel /Library/LaunchDaemons/my_job.plist
sudo chmod 600 /Library/LaunchDaemons/my_job.plist

这是sudo launchctl load -w /Library/LaunchDaemons/my_job.plist sudo launchctl unload /Library/LaunchDaemons/my_job.plist 的一个非常简单的例子。您可以在此处或Apple doc page上了解有关此内容的更多信息。