I sent the TERM signal to mongos to shut it down gracefully, and I got the following stack trace in my mongos log:
Wed Apr 27 00:46:52 [mongosMain] dbexit: received signal 15 rc:0 received signal 15
Received signal 6
Backtrace: 0x8167d37 0xb7764400 0xb7764416 0xb74cf851 0xb74d2d42 0xb750711d 0xb7511321 0xb7512b78 0xb7515c9d 0xb771d741 0x82c9711 0x8137649 0x81396be 0x82fe2cd 0xb7608985 0xb757513e
/usr/local/bin/mongos(_ZN5mongo17printStackAndExitEi+0x77)[0x8167d37]
[0xb7764400]
[0xb7764416]
/lib/tls/i686/nosegneg/libc.so.6(gsignal+0x51)[0xb74cf851]
/lib/tls/i686/nosegneg/libc.so.6(abort+0x182)[0xb74d2d42]
/lib/tls/i686/nosegneg/libc.so.6(+0x6211d)[0xb750711d]
/lib/tls/i686/nosegneg/libc.so.6(+0x6c321)[0xb7511321]
/lib/tls/i686/nosegneg/libc.so.6(+0x6db78)[0xb7512b78]
/lib/tls/i686/nosegneg/libc.so.6(cfree+0x6d)[0xb7515c9d]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb771d741]
/usr/local/bin/mongos(_ZN5mongo17CursorTimeoutTaskD0Ev+0x61)[0x82c9711]
/usr/local/bin/mongos(_ZN5mongo13BackgroundJob7jobBodyEN5boost10shared_ptrINS0_9JobStatusEEE+0x1e9)[0x8137649]
/usr/local/bin/mongos(_ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf1IvN5mongo13BackgroundJobENS_10shared_ptrINS7_9JobStatusEEEEENS2_5list2INS2_5valueIPS7_EENSD_ISA_EEEEEEE3runEv+0x7e)[0x81396be]
/usr/local/bin/mongos(thread_proxy+0x7d)[0x82fe2cd]
/lib/tls/i686/nosegneg/libpthread.so.0(+0x5985)[0xb7608985]
/lib/tls/i686/nosegneg/libc.so.6(clone+0x5e)[0xb757513e]
===
Mongos did not shutdown, the process is still running after this error. Sending another TERM has no effect other than this in the log:
Wed Apr 27 00:59:23 [websvr] dbexit: received signal 15 rc:0 received signal 15