Coder Social home page Coder Social logo

Comments (4)

kendru avatar kendru commented on August 24, 2024 1

No, sending SIGKILL will terminate the supervisor process, but it will orphan the children. The process never even receives the SIGKILL signal - it is entirely handled in the OS. Ben ran into this right away with the node process because clicking "stop" just killed the supervisor, but the node server was still running, and he could not restart it.

from exo.

kendru avatar kendru commented on August 24, 2024 1

The change that Ben made is a stopgap that will usually terminate the supervisor and the child process, but if the child is not well-behaved, it can still hang around. We need the supervisor to handle SIGTERM and SIGINT by trying to stop the child process (and forcefully killing it if it does not stop gracefully) then exiting itself. The stop handler for a process type should probably also wait on a slightly longer timeout after trying to stop the supervisor before killing it.

from exo.

brandonbloom avatar brandonbloom commented on August 24, 2024

When we stop a process, we send SIGKILL to the logio process

Seems like this changed now?
#43

orphaning the supervised process (and not stopping it)

Was that true? I thought they were part of a process group and should have died together. Is that not true?

we should signal logio that it should gracefully stop its child process, wait for termination, then stop itself. Configurable timeouts should be used in both exo and the supervisor, after which the child process should be killed.

The hard requirement is a proper kill. Graceful shutdown with only OK if we include the timeout mechanism.

from exo.

brandonbloom avatar brandonbloom commented on August 24, 2024

fixed on main branch

from exo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.