我正在尝试将项目上传到服务器。现在服务器中已有一个项目。我有新的项目,我想运行并用新的项目替换旧项目,所以我将新项目拉到服务器。然后我激活虚拟环境并完成所有必要的工作。然后当我尝试运行命令时:
uwsgi --plugins=python --chdir=/var/www/prjt/src/ --socket=127.0.0.1:8889 --module=prjt.wsgi:application &
它告诉我
probably another instance of uWSGI is running on the same address (127.0.0.1:8889).
bind(): Address already in use [core/socket.c line 761]
我搜索了类似的问题,并找到了关于杀死所有uwsgi实例的解决方案,如本回答here
中所述但找不到怎么做。
我是这个领域的新手。谁能请帮忙。我被困在这里。
希望问题很清楚。提前致谢
答案 0 :(得分:14)
对我来说,以暴力方式杀死uwsgi实例的方法是:
sudo pkill -f uwsgi -9
答案 1 :(得分:10)
为您的命令添加一个pid文件:
uwsgi --plugins=python --chdir=/var/www/prjt/src/ --socket=127.0.0.1:8889 --module=prjt.wsgi:application --pidfile /tmp/myapp.pid
然后使用
uwsgi --stop /tmp/myapp.pid
以安全的方式停止uwsgi实例。
如果在启动第一个实例时没有指定pid文件,可以使用
粗暴地删除它kill `pidof uwsgi`
答案 2 :(得分:4)
你可以在lsof -t -i tcp:8000
然后将其杀死kill -9 pid
答案 3 :(得分:2)
我通过命令停止我的uwsgi实例:
function onchangeprod(row){
var test ="<tr>"
+"<td>"
+"<select name='product' class='product' style='width: 250px' onchange='onchangeprod(this);'>"
<c:forEach var='pro' items='${product}'>
<c:if test="${pro.id!=prevId}">
+"<option value='${pro.id}' data-price='${pro.price}'>${pro.name}(€ ${pro.price})</option>"
</c:if>
</c:forEach>
+"</select>"
+"</td>"
+"</tr>";
$("#applyTable").append(test);
} <tbody id="applyTable"></tbody>
此命令发送signal to uwsgi,导致它停止。
如果你不了解PID,那么:
kill -INT `cat ${APP_ROOT}/run/uwsgi.pid`