Skip to content
DevMeme
4316 of 7435
Please Do Not SIGKILL Bob
OperatingSystems Post #4718, on Aug 2, 2022 in TG

Please Do Not SIGKILL Bob

Why is this OperatingSystems meme funny?

Level 1: Say Goodbye First

This is funny because it makes a computer process look like a parent with little children. A gentle stop gives everyone time to finish what they were doing and say goodbye. A harsh stop yanks the parent away instantly, leaving the little ones confused. The simple lesson is: do not smash the off button first if asking nicely would let the program clean up.

Level 2: Be Kind To Processes

In Linux, a process is a running program. It has a process ID, or PID, like Bob's 1431 label in the comic. Processes can have threads, which are smaller paths of execution inside the same program, and they can start child processes.

A signal is a message sent to a process. Two common examples are:

kill -TERM 1431
kill -KILL 1431

SIGTERM asks the process to stop. If the program is written well, it can notice the signal and clean up before exiting. SIGKILL forces it to stop immediately. The program does not get to run its normal shutdown code.

The panels show this difference as a family drama. With SIGTERM, Bob talks to his kids, they finish tasks, and they say goodbye. With SIGKILL, Bob disappears suddenly and the kids ask:

Dad, where are we going?

and:

Dad, where are you?

For newer developers and sysadmins, the lesson is practical: try graceful shutdown first. Use SIGKILL when a process is truly stuck or must be stopped immediately, but understand that it skips the polite cleanup path.

Level 3: Graceful Shutdown Trauma

The hooded SysAdmin carrying a SIGTERM flag is funny because every operations person has learned that "stop the service" is not one operation. There is the graceful path, where the service drains requests, finishes jobs, writes checkpoints, releases leases, and tells dependents what happened. Then there is the path where someone runs kill -9 because the deploy is late and the dashboard is red.

The visible plea says:

So please, DON'T use SIGKILL. Give the kids the chance to leave the kernel in peace. Be nice.

That is not just sentimentality. In production systems, harsh termination turns orderly shutdown into forensic archaeology. Background workers may abandon messages after taking them from a queue. Databases may recover safely but still pay replay costs. Web servers may drop active requests. Batch jobs may leave output files that look complete enough to fool the next stage. The process is gone, but the blast radius is still taking notes.

The comic's emotional framing works because it anthropomorphizes a best practice developers often learn only after pain. SIGTERM is the request: "please stop." SIGKILL is the enforcement: "you are done now." Both are useful. The veteran lesson is not "never use SIGKILL"; it is "do not reach for it first." If a process ignores SIGTERM, maybe it is stuck in uninterruptible I/O, deadlocked, overloaded, or badly written. SIGKILL may be necessary, but using it as the default teaches the system nothing except how to lose context faster.

The best teams design for this. Services handle termination signals, containers get enough shutdown grace period, supervisors escalate predictably, and workers make jobs idempotent so a sudden death does not corrupt the world. Everyone says they believe in graceful shutdown until the pager has been screaming for twelve minutes and the only thing between them and sleep is one very tempting -9.

Level 4: Signals From Above

The comic introduces:

This is Bob. Bob is a Linux process.

then contrasts a soft SIGTERM with a brutal SIGKILL. Under the cartoon, the real mechanism is Unix signal delivery. A process has entries in kernel data structures: PID, parent relationship, credentials, signal dispositions, file descriptors, memory mappings, scheduling state, and one or more threads. When another process calls something like kill(pid, SIGTERM), the kernel records a pending signal and eventually delivers it to the target according to signal masks and thread rules.

SIGTERM is polite because it is catchable. The target process can install a handler, set a shutdown flag, flush buffers, close sockets, stop accepting new work, tell worker threads to finish, and exit with a meaningful status. It is not magic mercy; it is a chance for user-space code to cooperate with its own death.

SIGKILL is different. It cannot be caught, ignored, or blocked. The kernel tears down the task without running the program's cleanup handlers. Memory is reclaimed, file descriptors are closed by the kernel, and the process exits, but application-level invariants may be left half-updated: temp files remain, locks may need timeout recovery, queues may contain partially handled work, and clients may see abrupt disconnects. The operating system cleans up kernel-owned resources; it cannot finish the story your application was in the middle of writing.

The comic simplifies "kids" into emotional child figures. In real Linux terms, threads share an address space and many resources, while child processes have separate PIDs and parent-child relationships. Killing a parent does not automatically kill every child process unless process groups, sessions, supervisors, containers, or cgroups are managing that behavior. Orphans may be reparented and later reaped. Zombies are not undead applications doing work; they are exited processes waiting for a parent to collect their status. Still, as metaphors go, "Dad, where are you?" is a painfully accurate sysadmin nursery rhyme.

Description

A black-and-white comic from Daniel Stori / turnoff.us anthropomorphizes Linux processes as penguin-like characters with process IDs, introducing: "This is Bob. Bob is a Linux process. HI!" It explains, "Like any process, Bob has his threads, whom he shares context, memories and love" and "And like all processes, inevitably sometime he will be killed," while a hooded SysAdmin figure holds a SIGTERM flag. The comic says that with a soft SIGTERM, "we give him the chance to talk with his kids about it. So, the kids finish their tasks..." and "...and say goodbye to each other. That's a process life!" It contrasts this with SIGKILL: "On the other hand, when we brutally kill a process with SIGKILL, we prevent them to finish their job and say goodbye..." followed by "...and this is so SAD! DAD!!" and the final plea, "So please, DON'T use SIGKILL. Give the kids the chance to leave the kernel in peace. Be nice," with child processes asking, "Dad, where are we going?" and "Dad, where are you?"

Comments

17
Anonymous ★ Top Pick SIGTERM is just SIGKILL with a calendar invite for cleanup.
  1. Anonymous ★ Top Pick

    SIGTERM is just SIGKILL with a calendar invite for cleanup.

  2. @s0mby 3y

    ... and child becomes ZOMBIES!

  3. @SamsonovAnton 3y

    Why necessarily "killed" and not just "die" by itself?

  4. @nohat01 3y

    Seriously, if a girls use Linux, she won't use SIGKILL anymore

    1. @feedable 3y

      you stupid girls don't use linux

      1. @nohat01 3y

        I met 10 girls use Linux in Russia

        1. @feedable 3y

          fake transgender

          1. @nohat01 3y

            Fuck no

        2. @ZgGPuo8dZef58K6hxxGVj3Z2 3y

          Binary doesn’t count!

          1. @nohat01 3y

            Why not??

          2. @nohat01 3y

            All binary

      2. @Azhinu 3y

        I'm a Linux system administrator. And I not sure, but probably im a girl! or not...

      3. @lilfluffyears 3y

        Heya uwu

      4. @sylfn 3y

        well)) they do

  5. @RiedleroD 3y

    please provide an english translation for your text. regarding the one I deleted: ads are not allowed in this chat

    1. @sylfn 3y

      i dont think the reanslation is that needed

      1. @RiedleroD 3y

        mh, you're right

Use J and K for navigation