我正在运行一个VPS在数字海洋与Ubuntu 14.04。
设置管理程序,运行bash脚本导出环境变量,然后启动芹菜:
#!/bin/bash
DJANGODIR=/webapps/myproj/myproj
# Activate the virtual environment
cd $DJANGODIR
source ../bin/activate
export REDIS_URL="redis://localhost:6379"
...
celery -A connectshare worker --loglevel=info --concurrency=1
现在我注意到,当我执行monitorctl stop时,supervisor似乎并没有杀死这些进程。此外,当我试图手动终止进程时,它们不会停止。如何为supervisor设置更好的脚本,如何终止正在运行的进程?
您应该将stopasgroup=true
选项配置到supervisord.conf
文件中。
因为你不仅杀死了父进程还杀死了子进程
发送kill -9
必须杀死进程。如果supervisorctl stop
没有停止您的进程,您可以尝试将stopsignal
设置为其他值之一,例如QUIT
或KILL
。