gpt4 book ai didi

python - 在 linux "screen"中运行 Python 脚本会产生 "Cannot assign requested address"

转载 作者:太空宇宙 更新时间:2023-11-04 03:56:40 24 4
gpt4 key购买 nike

我有一个 shell 脚本,它在 Ubuntu 12.04 上启动模拟环境( ROSUnderwater Simulation )。为了在一般情况下使用模拟环境,组件需要通过 TCP/IP 与环境进行通信。

如果我在标准终端上启动模拟脚本,模拟环境就会像预期的那样启动。它还绑定(bind)到先前定义的 IP 地址,没有错误或警告。我可以不受任何限制地使用它。现在我的问题来了:我需要在独立的 screen 中开始模拟(按照要求进行)。我用的是

screen -d -m -S UWSim bash -c 'export $USER=~ ; ~/uwsim_ws/uwsim_starter.sh'

我需要设置 screen 中默认未设置的USER变量,否则脚本找不到ROS的其他下标。执行上述命令后,在ROS启动过程中的某个时刻,我收到以下错误:

...
Traceback (most recent call last):
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address
...

由于此错误,我的组件无法连接到模拟。正如我已经提到的:在标准终端中启动时一切正常。我的猜测是缺少一些导出。我已经将终端中的所有导出与 screen 中的导出进行了比较(这导致我设置了 USER 变量),但没有成功。

最佳答案

我会在 uwsim_starter.sh shell 中而不是在 screen 命令中执行与 shell 相关的任何操作。因此,您的 screen 命令会更简单

那么导出 $USER 不应该将 $USER 设置为任何内容!使用

export USER=~ 

相反

此外,当另一个进程已在同一服务器上的同一 ip:port 或 *:port 上监听时,通常会出现无法分配请求的地址。请检查是否使用

netstat -plnt | grep <port number of your application>

并以聆听模式搜索其他人

关于python - 在 linux "screen"中运行 Python 脚本会产生 "Cannot assign requested address",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com