forked from benoitc/gunicorn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
log_ctrl_c.log
85 lines (73 loc) · 4.54 KB
/
log_ctrl_c.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# 启动两个sync worker后 Ctrl-C 后的日志
# 启动 master
[33249] [INFO] [39m {140735730451328} run
[33249] [INFO] Starting gunicorn 20.0.0
[33249] [INFO] [39m {140735730451328} init_signals
[33249] [INFO] Listening at: http://127.0.0.1:8000 (33249)
[33249] [INFO] Using worker: sync
[33249] [INFO] [39m {140735730451328} spawn_workers
[33249] [INFO] [39m {140735730451328} spawn_worker
[33249] [INFO] [39m {140735730451328} spawn_worker before fork
[33249] [INFO] [39m {140735730451328} spawn_worker after fork
# 启动 worker1
[33252] [INFO] [34m {140735730451328} spawn_worker after fork
[33252] [INFO] Booting worker with pid: 33252
[33252] [INFO] [34m *** {140735730451328} spawn_worker before worker init_process
[33252] [INFO] [34m *** {140735730451328} init_process
[33252] [INFO] [34m *** {140735730451328} init_signals
[33252] [INFO] [34m *** {140735730451328} load_wsgi
[33249] [INFO] [39m {140735730451328} spawn_worker
[33249] [INFO] [39m {140735730451328} spawn_worker before fork
[33249] [INFO] [39m {140735730451328} spawn_worker after fork
# 启动 worker2
[33253] [INFO] [33m {140735730451328} spawn_worker after fork
[33253] [INFO] Booting worker with pid: 33253
[33253] [INFO] [33m === {140735730451328} spawn_worker before worker init_process
[33253] [INFO] [33m === {140735730451328} init_process
[33253] [INFO] [33m === {140735730451328} init_signals
[33253] [INFO] [33m === {140735730451328} load_wsgi
# ⚠️ Ctrl-C
# master收到 SIGINT📶
[33249] [INFO] [39m {140735730451328} signal sig=2 & wakeup
[33249] [INFO] [39m {140735730451328} SIG2> wakeup
# woker 1 2 收到 SIGINT
# todo: 此处worker收到了SIGINT, 那么岂不是应该直接退出了? 为啥worker是下面 ❌ 被killed
[33253] [INFO] [33m === {140735730451328} handle_quit: 2 sys.exit(0)
[33252] [INFO] [34m *** {140735730451328} handle_quit: 2 sys.exit(0)
[33249] [INFO] [39m {140735730451328} sleep except [Errno 35] Resource temporarily unavailable
[33249] [INFO] [39m {140735730451328} run got sig=2
# master 触发 handle_int
[33249] [INFO] [39m {140735730451328} handle_int & stop & StopIteration # 💋
[33249] [INFO] [39m {140735730451328} H_INT> stop graceful=False
[33249] [INFO] [39m {140735730451328} stop will SIGQUIT workers # ❎
[33249] [INFO] [39m {140735730451328} H_INT>STOP> kill_workers: Signals.SIGQUIT
[33249] [INFO] [39m {140735730451328} H_INT>STOP>KL_WKS> kill_worker pid=33252 Signals.SIGQUIT
[33249] [INFO] [39m {140735730451328} H_INT>STOP>KL_WKS> kill_worker pid=33253 Signals.SIGQUIT
# ❌ woker 1 2 will be killed
[33252] [INFO] [34m *** {140735730451328} handle_quit: 3 sys.exit(0)
[33253] [INFO] [33m === {140735730451328} handle_quit: 3 sys.exit(0)
[33252] [INFO] [34m *** {140735730451328} spawn_worker except SystemExit
[33253] [INFO] [33m === {140735730451328} spawn_worker except SystemExit
[33252] [INFO] [34m *** {140735730451328} spawn_worker finally worker exiting
[33253] [INFO] [33m === {140735730451328} spawn_worker finally worker exiting
# todo: 下面两行为什么是woker进程中的日志?
[33252] [INFO] [34m {140735730451328} run except3: SystemExit
[33253] [INFO] [33m {140735730451328} run except3: SystemExit
# master收到woker进程发出的 SIGCHLD📶
[33249] [INFO] [39m {140735730451328} handle_chld & reap_workers & wakeup
[33249] [INFO] [39m {140735730451328} H_CHLD> reap_workers
[33249] [INFO] [39m {140735730451328} H_CHLD> wakeup
[33249] [INFO] [39m {140735730451328} handle_chld & reap_workers & wakeup
[33249] [INFO] [39m {140735730451328} H_CHLD> reap_workers
[33249] [INFO] [39m {140735730451328} H_CHLD> wakeup
# note: stop and SIGKILL workers, 注意和👆一样都是在 stop 中触发
[33249] [INFO] [39m {140735730451328} stop will SIGKILL workers # 此处接 ❎
[33249] [INFO] [39m {140735730451328} H_INT>STOP> kill_workers: Signals.SIGKILL
[33249] [INFO] [39m {140735730451328} run except1: StopIteration # 💋 处的异常
[33249] [INFO] [39m {140735730451328} RUN> halt reason=None exit_status=0
[33249] [INFO] [39m {140735730451328} RUN>HALT> stop graceful=True
[33249] [INFO] [39m {140735730451328} stop will SIGTERM workers
[33249] [INFO] [39m {140735730451328} RUN>HALT>STOP> kill_workers: Signals.SIGTERM
[33249] [INFO] [39m {140735730451328} stop will SIGKILL workers
[33249] [INFO] [39m {140735730451328} RUN>HALT>STOP> kill_workers: Signals.SIGKILL
[33249] [INFO] [39m {140735730451328} Shutting down Master