this process is going very long time.
& how can i stop it with manual?
If you have over 1k messages in queue and want to nuke them its best to :
1 - stop chkservd from restarting exim when you stop it in step 2 (/etc/init.d/chkservd stop)
2 - stop exim (/etc/rc.d/init.d/exim stop)
3 - Nuke the queue yourself:
You'll see a directory for every case of every letter that has a corresponding message id beginning with that letter.
just rm -rf * then re-start exim, or use a utility like find to just remove messages over xx minutes old (past 90-120 mins would be a good candidate).
Cpanel's utility removes the queue without actually taking exim down, which takes much longer and is impractical when cleaning out a huge queue (and not too load friendly either)
Even if you're removing the queue, once an hour every hour exim is going to try to deliver them. If the mail queue is huge you're better off doing it through ssh.
I wrote this a while ago and never posted it anywhere (actually forgot I had it) which can help keep exim's queue from looming too big.
# Simple Exim Queue Cleaner
# copyrighting this would be pitiful.
# Set trip for however many minutes a queued message should be allowed to live ...
[ -d "/var/spool/exim/input" ] || exit 1
echo "Scanning exim's queue for messages aging at or over $(($trip +1 )) minutes."
for message in `find ? -cmin +$trip -print`; do
if [ -f "$message" ]; then
let "counter += 1"
if [ "$1" = "--show" ]; then
echo -en "$message\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
rm -f $message`
let "i += 1"
let "i = $i / 2"
echo "Done. $i stale emails nuked."
This is gentle enough to run via cron to help keep your queue from getting that big. Paste into a file and chmod +x ... I'd run it 2 - 3 times a day on servers that tend to get a bunch of incoming or reciprocal junk.
The above takes a --show as argv to produce output as it goes, else just send to /dev/null in a cron with no arguments.
This is probably obvious, but just in case I've edited the post to add :
don't forget to restart chkservd