我尝试使用tcp
部署使用python编写的ThreadedTCPServer
服务器。
可以在beanstalk中运行这个TCP服务器吗?
我不想使用或更改WSGI
服务器。
我实现的一个时间解决方案是创建一个安装了tcp
服务器的映像,当它启动时,它会自动启动服务器。我的beanstalk使用自定义ami
来创建新实例。
然而,这样做,我无法使用beanstalk的好处(log,git aws.push
等)
答案 0 :(得分:2)
您可以使用container_command
启动服务器进程。
我已经完成了与我的WSGI
服务器一起运行的一些后端进程,但我不明白为什么你不能在没有WSGI服务器的情况下这样做。
这是我的.ebextensions / appname.config文件:
container_commands:
01_kill_old_server:
command: "pid=`ps -aefw | grep 'myserver.py' | grep -v ' grep ' | awk '{print $2}'`; kill -9 $pid > /dev/null 2>&1 "
ignoreErrors: true
02_start_server:
command: "nohup python ./myserver.py > foo.out 2> foo.err < /dev/null &"
每次使用git aws.push
进行部署时,它都会终止旧进程并从新代码启动新进程。
以下是container_commands
文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-container_commands