我最近将Google App Engine升级到1.7.7。并且从那时起就无法在本地运行任何应用程序。这包括在更新之前工作的应用程序以及我之后创建的应用程序。我没有遇到任何其他对这个特定问题的引用“无法绑定到localhost:0”,因此任何有关清除此障碍的见解都将非常感激。
我在今天添加了一个新的“Hello World”应用程序的日志。在OS X 10.6.8上通过ActivePython使用Python 2.7。
*** Running dev_appserver with the following flags:
--skip_sdk_update_check=yes --port=12084 --admin_port=8007
Python command: /usr/local/bin/pythonw
INFO 2013-04-13 06:37:31,627 devappserver2.py:498] Skipping SDK update check.
WARNING 2013-04-13 06:37:31,691 api_server.py:328] Could not initialize images API; you are likely missing the Python "PIL" module.
WARNING 2013-04-13 06:37:31,692 simple_search_stub.py:977] Could not read search indexes from /var/folders/ag/ag25hkLMFEG1p0pLBBX5Mk+++TI/-Tmp-/appengine.binderror.b/search_indexes
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 193, in <module>
_run_file(__file__, globals())
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 189, in _run_file
execfile(script_path, globals_)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 662, in <module>
main()
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 655, in main
dev_server.start(options)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 626, in start
apis.start()
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 151, in start
super(APIServer, self).start()
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 296, in start
raise BindError('Unable to bind %s:%s' % self.bind_addr)
google.appengine.tools.devappserver2.wsgi_server.BindError: Unable to bind localhost:0
更新:我能够通过GAE Launcher部署“Hello World”应用,没有任何问题。我运行了errinfo -c -n GoogleAppEngineLauncher.app
命令,它使用了包含的dtrace
,然后尝试运行三个应用程序,然后关闭它们。这是输出[有点超出我]:
EXEC SYSCALL ERR COUNT DESC
GoogleAppEngine madvise 12 1 Cannot allocate memory
GoogleAppEngine __disable_threadsignal 0 2
GoogleAppEngine access 0 3
GoogleAppEngine bsdthread_register 22 3 Invalid argument
GoogleAppEngine chdir 0 3
GoogleAppEngine close_nocancel 0 3
GoogleAppEngine fcntl_nocancel 0 3
GoogleAppEngine fork 0 3
GoogleAppEngine getdtablesize 0 3
GoogleAppEngine getpid 0 3
GoogleAppEngine open_nocancel 0 3
GoogleAppEngine setsid 0 3
GoogleAppEngine sigprocmask 0 3
GoogleAppEngine stat64 0 3
GoogleAppEngine wait4 0 3
GoogleAppEngine workq_open 0 3
GoogleAppEngine write 0 3
GoogleAppEngine lstat64 0 4
GoogleAppEngine pipe 0 6
GoogleAppEngine thread_selfid 0 6
GoogleAppEngine gettimeofday 0 7
GoogleAppEngine dup2 0 9
GoogleAppEngine madvise 0 17
GoogleAppEngine munmap 0 31
GoogleAppEngine mmap 0 33
GoogleAppEngine sigaction 0 87
GoogleAppEngine getattrlist 0 102
GoogleAppEngine fstat64 0 118
GoogleAppEngine open 0 118
GoogleAppEngine geteuid 0 208
GoogleAppEngine dup 0 10418
GoogleAppEngine read 0 10532
GoogleAppEngine close 0 10584
GoogleAppEngine workq_kernreturn 0 20752
GoogleAppEngine close 9 21459 Bad file descriptor
GoogleAppEngine kevent 0 72543
8月16日更新2:我安装了最新版本的GAE Launcher [1.8.3],现在一切正常。
答案 0 :(得分:32)
对于在Unknown key
运行时获得fuser -k 8080/tcp
的人,这里有一个对我有用的解决方案:
lsof -P | grep ':8080' | awk '{print $2}' | xargs kill -9
答案 1 :(得分:18)
您的套接字已在使用中。杀死它,它应该被解决。fuser -k 8080/tcp
例如,上面的代码在8080
处杀死并释放套接字答案 2 :(得分:5)
在另一个端口测试它,在启动服务器时添加--port NUMBER。
答案 3 :(得分:4)
fuser -k命令对我不起作用,而是我这样做了。
通过“sudo lsof -i -n -P | grep TCP”查看哪个进程正在使用该端口。我注意到进程ID并通过Activity Monitor(在“网络”选项卡中)退出。
答案 4 :(得分:1)
有同样的问题,实际上是在尝试使用GUI运行服务器。在GUI中停止它,完美运行。
答案 5 :(得分:1)
Ubuntu 14.04有一个名为&#34; webfs&#34;的轻量级服务器。在localhost上听:8000。运行 - sudo netstat -taupen | grep&#34;:8000&#34; - 在终端确认。如果它的监听运行 - sudo killall -q / usr / bin / webfsd - 将其杀死。 GAE使用端口8000和8080,如果其中一个或两个都忙,则不会启动。 反思时,webfs守护程序也可以作为服务打开和关闭:sudo service webfs start / stop。但是,由于这两种方法都需要root权限,因此它们不易自动化。 当我从命令行本地启动appengine时,只需在启动时将管理端口从8000更改为8001,这是一种更为深思熟虑的方法。我的命令行如下:google_appengine / dev_appserver.py --admin_port 8001 projects / helloworld /
答案 6 :(得分:1)
您上次运行app engine命令时,请使用ctrl-z
关闭它(分流到背景)而不是ctrl-c
(kill)。重新启动终端,下次关闭终端使用ctrl-c
的应用引擎时,您就可以了。