OpenStack Swift:PID 文件不对应 运行 进程的 PID;无法重新启动服务 - 端口已绑定
OpenStack Swift: PID files don't correspond to running processes' PIDs; can't restart services - port already bound
我是 运行 一个 Docker 容器,在 CentOS 7 主机上有 Swift ("Swift all-in-one")。我注意到 /var/run/swift/*.pid
文件中的 PID 与系统中的实际 PID 运行 不同:
root@5293f4890016:/var/run/swift# for pidfile in `ls`; do echo $pidfile: `cat $pidfile`; done
account-auditor.pid: 219
account-reaper.pid: 285
account-replicator.pid: 291
account-server.pid: 274
container-auditor.pid: 264
container-replicator.pid: 256
container-server.pid: 267
container-sync.pid: 288
container-updater.pid: 216
object-auditor.pid: 259
object-replicator.pid: 222
object-server.pid: 297
object-updater.pid: 294
proxy-server.pid: 225
root@5293f4890016:/var/run/swift# ps ax | egrep "account|container|object|proxy"
21 ? S 0:00 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf
22 ? S 0:00 /usr/bin/python /usr/bin/swift-account-reaper /etc/swift/account-server.conf
23 ? Sl 0:00 /usr/bin/python /usr/bin/swift-object-replicator /etc/swift/object-server.conf
24 ? S 0:00 /usr/bin/python /usr/bin/swift-account-auditor /etc/swift/account-server.conf
25 ? S 0:00 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf
27 ? S 0:00 /usr/bin/python /usr/bin/swift-account-replicator /etc/swift/account-server.conf
28 ? S 0:00 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf
30 ? S 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf
31 ? S 0:00 /usr/bin/python /usr/bin/swift-object-updater /etc/swift/object-server.conf
81 ? S 0:00 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf
82 ? S 0:00 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf
83 ? S 0:00 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf
84 ? S 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf
114 ? S 0:00 /usr/bin/python /usr/bin/swift-container-sync /etc/swift/container-server.conf
135 ? S+ 0:00 egrep account|container|object|proxy
我在尝试(重新)配置 Swift 代理服务器并因此重新启动它时遇到问题。似乎 swift-init 寻找 PID 225(见上面的输出)但它找不到它(因为那不是实际的 PID)然后尝试启动代理服务器但端口显然已经绑定。
我是不是遗漏了什么,或者我的设置有问题?
root@5293f4890016:/# swift-init proxy-server restart
Signal proxy-server pid: 225 signal: 15
No proxy-server running
WARNING: Unable to modify file descriptor limit. Running as non-root?
Starting proxy-server...(/etc/swift/proxy-server.conf)
Traceback (most recent call last):
File "/usr/bin/swift-proxy-server", line 23, in <module>
sys.exit(run_wsgi(conf_file, 'proxy-server', default_port=8080, **options))
File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 381, in run_wsgi
sock = get_socket(conf, default_port=kwargs.get('default_port', 8080))
File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 173, in get_socket
bind_addr[0], bind_addr[1], bind_timeout))
Exception: Could not bind to 0.0.0.0:8080 after trying for 30 seconds
我不确定我的 Swift 安装有什么问题,但我重新安装了它并且一切正常。如果遇到同样的问题,请尝试重新安装 Swift.
我是 运行 一个 Docker 容器,在 CentOS 7 主机上有 Swift ("Swift all-in-one")。我注意到 /var/run/swift/*.pid
文件中的 PID 与系统中的实际 PID 运行 不同:
root@5293f4890016:/var/run/swift# for pidfile in `ls`; do echo $pidfile: `cat $pidfile`; done
account-auditor.pid: 219
account-reaper.pid: 285
account-replicator.pid: 291
account-server.pid: 274
container-auditor.pid: 264
container-replicator.pid: 256
container-server.pid: 267
container-sync.pid: 288
container-updater.pid: 216
object-auditor.pid: 259
object-replicator.pid: 222
object-server.pid: 297
object-updater.pid: 294
proxy-server.pid: 225
root@5293f4890016:/var/run/swift# ps ax | egrep "account|container|object|proxy"
21 ? S 0:00 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf
22 ? S 0:00 /usr/bin/python /usr/bin/swift-account-reaper /etc/swift/account-server.conf
23 ? Sl 0:00 /usr/bin/python /usr/bin/swift-object-replicator /etc/swift/object-server.conf
24 ? S 0:00 /usr/bin/python /usr/bin/swift-account-auditor /etc/swift/account-server.conf
25 ? S 0:00 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf
27 ? S 0:00 /usr/bin/python /usr/bin/swift-account-replicator /etc/swift/account-server.conf
28 ? S 0:00 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf
30 ? S 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf
31 ? S 0:00 /usr/bin/python /usr/bin/swift-object-updater /etc/swift/object-server.conf
81 ? S 0:00 /usr/bin/python /usr/bin/swift-object-server /etc/swift/object-server.conf
82 ? S 0:00 /usr/bin/python /usr/bin/swift-container-server /etc/swift/container-server.conf
83 ? S 0:00 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf
84 ? S 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf
114 ? S 0:00 /usr/bin/python /usr/bin/swift-container-sync /etc/swift/container-server.conf
135 ? S+ 0:00 egrep account|container|object|proxy
我在尝试(重新)配置 Swift 代理服务器并因此重新启动它时遇到问题。似乎 swift-init 寻找 PID 225(见上面的输出)但它找不到它(因为那不是实际的 PID)然后尝试启动代理服务器但端口显然已经绑定。
我是不是遗漏了什么,或者我的设置有问题?
root@5293f4890016:/# swift-init proxy-server restart
Signal proxy-server pid: 225 signal: 15
No proxy-server running
WARNING: Unable to modify file descriptor limit. Running as non-root?
Starting proxy-server...(/etc/swift/proxy-server.conf)
Traceback (most recent call last):
File "/usr/bin/swift-proxy-server", line 23, in <module>
sys.exit(run_wsgi(conf_file, 'proxy-server', default_port=8080, **options))
File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 381, in run_wsgi
sock = get_socket(conf, default_port=kwargs.get('default_port', 8080))
File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 173, in get_socket
bind_addr[0], bind_addr[1], bind_timeout))
Exception: Could not bind to 0.0.0.0:8080 after trying for 30 seconds
我不确定我的 Swift 安装有什么问题,但我重新安装了它并且一切正常。如果遇到同样的问题,请尝试重新安装 Swift.