> Good morning, > > We have a feature that allows a user to kill all it's sessions. Imagine > a cellphone gets stolen. The user could disconnect it's sessions from > our interface. > > It normally works fine. We just launch a kill TERM to the user's > imap/pop processes mainly. But I have seen a couple of times, that after > doing that, no user can later connect to it's mailbox. It's like, if > something important would become locked... some important database or > similar, by that killed processes that obviously as have become killed, > won't unlock that hypothetical important database. Have you ever seen a > behavior like the commented?. > > Perhaps, does Cyrus have another "more elegant" way of logging out a > user?. >From how I understand it you could send SIGHUP to the child process and it should terminate gracefully. BUT, I think it also keeps valid connections alive and therefore can take a lot of time to terminate. Did you try how SIGHUP behaves? Now looking at the code it seems like child_janitor() is called to terminate children and it does so with SIGHUP. Did I look in the wrong place because I don't remember stopping master has taken a lot of time? Otherwise, this really asks for another signal to be defined to do a forced logout, maybe SIGUSR1 could be used for this task? Regards, Simon ------------------------------------------ Cyrus: Info Permalink: https://cyrus.topicbox.com/groups/info/Tdfb46db342104c8f-M5814e7a7cf68364d31dd498e Delivery options: https://cyrus.topicbox.com/groups/info/subscription