edit: fixed thumbnail

2 points

permalink
report
reply
2 points
Deleted by creator
permalink
report
reply
1 point

I love how Gemini is so sorry that it can’t help you kill children

permalink
report
reply
4 points
*

I useally create an ownership tag if whatever language I use doesn’t have one so I can kill the child and it works it’s way up to the parent

permalink
report
reply
3 points

Depends on whether or not you want to kill only the child processes of a parent process or if you want to kill the parent as well. To kill the parent and children, you can kill the entire process group, specifying the pgid in the kill command. To kill only the parent you can trap SIGTERM in the parent and then send SIGTERM to the process group.

permalink
report
reply
4 points

Explain Like I’m Retarded?

permalink
report
parent
reply
2 points
*

Processes in most operating systems (I’ll use Linux, because it’s what I know and because…Lemmy) are organized in a tree like structure. There’s some initial very low level code used to start the OS, and every other process spawns from that, which is to say they tell the operating system “Hey, please make this process I’m gonna tell you about - allocate resources for it, etc.” The operating system creates it and binds that new child process to the first one. The process that spawned the other process is called its parent. The process that just got spawned is called a child. You could also call them root and leaf processes, I suppose, but nobody really does that. Sometimes you want to get rid of all the child processes a process spawns, but leave the running process intact. Sometimes you want to kill the process that spawned everything and also cleanup anything it might have created. There are lots of programming scenarios in which you might want to do either. It really depends on how your application is designed and what it’s doing.

That all said, there’s a command in Linux called “kill” and you can tell it the process id, process group id, etc. to kill a process or a process group. You can also manipulate what are called SIGNALS. Signals are a whole thing in Linux. They’re basically small values you can send to processes at any time and the operating system forces the process to perform some action whenever it receives one of them. SIGTERM basically stands for “SIGNAL: TERMINATE PROCESS.” So if you “trap” the SIGTERM, you can basically tell the operating system - whenever this parent process receives a SIGTERM, ignore it. The other processes in the process group - the child processes - all terminate, though, when they receive it.

permalink
report
parent
reply
3 points

Processes can make their own processes. If you know of such a secondary process, you might still want to terminate the one at the top.

Something like that?

permalink
report
parent
reply
5 points

Try turning it off and on again

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 5.3K

    Monthly active users

  • 1.5K

    Posts

  • 33K

    Comments