Questions tagged [fork]

The tag has no usage guidance.

Filter by
Sorted by
Tagged with
-1
votes
1answer
24 views

Send signal to paused parent process and guarantee that it will arrive AFTER the parent pauses

I have this kind of pseudo-code and i'm wishing to know what I must change in order to guarantee that the signal send to the parent will indeed arrive after that the parent pauses. int main() { ...
-1
votes
0answers
36 views

Change argument values passed to a function later on from outside the function

Hi guys i'm using POSIX functionabilities in C to complete one of my current projects. I have something like this: int main() { int col, val; char* sign; for(int i = 0; i < 5; i++) ...
0
votes
2answers
67 views

Does fork() also copy the file descriptor for the executable binary that the calling process is currently executing?

I've read the man pages on fork(), and they say something along the lines of "all file descriptors open in the calling process are copied". It is not 100% clear to me if the file descriptor ...
1
vote
1answer
50 views

How exactly do programs or bash shell commands work on Linux systems?

I am researching how processes and shell work in Linux system. I would like to consult you to see if my conclusions are correct. When we start the system, the kernel starts the init process, ...
0
votes
1answer
37 views

Three Questions on Child Shells: Lifespan and Creation

Is a child shell's life over shortly after it's created? I.e., do its assets get replaced by the process that is going to be run in it? Say we've run grep -r "something" in bash, so our ...
13
votes
2answers
2k views

Why “the process must not fork” for simple type services in systemd?

I want to write my own systemd unit files to manage really long running commands1 (in the order of hours). While looking the ArchWiki article on systemd, it says the following regarding choosing a ...
1
vote
1answer
51 views

Can I force some process to execute fork system call, from outside of that process?

Let's say there is a program, that waits for user input. If user input is "A", program goes to state s_a, and if user input is "B", program goes to state s_b. I don't know which state I need, ...
1
vote
1answer
44 views

How can I use fork to calculate partial results of a calculation?

The task that has been given to me is that I have to find all numbers that divide a number (let's call it x) and find out how many times does it divide it. I have to use fork to do the task. What I ...
0
votes
0answers
12 views

Can I efficiently fork a ramfs partition?

I want a ramfs (or equivalent, but strictly RAM only) partition which will serve as a read-only master instance from which any number of identical children can be forked. When a process forks, this ...
1
vote
1answer
30 views

Recurrent output of printf() to stdout each time fork() is invoked allthough printf() is invoked prior to fork(). And why does '\n' fixes this? [duplicate]

While I was playing around with fork() I noticed a rather strange behavior but I couldn't figure out myself why this happens. In the example below, each time fork() is invoked the output from the ...
0
votes
0answers
33 views

Rewrite program using POSIX threads rather than fork

Beginning to learn more on pthreads and how they could be implemented within my program. Below is a program which uses fork however would like to change the code so instead uses POSIX. Honestly do not ...
0
votes
1answer
57 views

Can I wait for all forked processes from a command to finish?

Suppose running FOO stars BAR in the background. How can I wait for BAR to finish in the shell? I want a solution where I don’t change the internals of FOO (though I can grudgingly change BAR’s.). ...
0
votes
0answers
59 views

Receiving SIGKILL when children terminate

I want to receive SIGKILL instead of SIGCHLD when any of my forked children terminate. On Linux this is possible by passing a different child termination signal to clone()1. Is this possible on any ...
0
votes
1answer
80 views

Interacting programs stdin and stdout (create a robot program to play a game)

The setup: I have an executable file, that I "cannot edit", since I don't have the source code. When I execute the program it reveals a game, where it hands me some numbers via stdout, for me to ...
2
votes
0answers
41 views

Make Linux reboot when it runs out of PID

I want to configure a headless server to automatically reboot under catastrophic circumstances. Right now I have configured to make it panic when running out of RAM, and reboot automatically on kernel ...
0
votes
0answers
43 views

Why is “&” necessary to make a Unix fork bomb work? [duplicate]

Consider the canonical example of a Unix fork bomb: DANGER: running the following command, might crash your system. :(){ :|: & };: I wonder why & (background) is needed in order to use up ...
0
votes
1answer
1k views

Cgroup memory limits and process killing

I have the following situation: (The following functions are ones taken from python) I have a process A which is running and has a cgroup memory limit set on it. I fork a child process from A using ...
1
vote
1answer
55 views

Do subprocesses keep pipes open?

I am trying to understand the behaviour of programs that launch subprocesses, when run in a pipeline. This bash program, fork.sh, prints and returns immediately: (sleep 1) & echo 'here' But ...
0
votes
2answers
190 views

kill( ) won't stop subprocess if done from process started by /etc/rc.local?

On a raspberry pi (a recent raspian) I wrote an application that, on demand via network request, spawns an application, and on demand via different network request, kills it. The spawning mechanism is ...
0
votes
1answer
48 views

fork(), exec() sequence with object file formats?

It's my understanding that POSIX systems rely on certain linker formats to organize memory during a fork() exec() sequence of calls. a.out, COFF and ELF are widely known formats of binary object ...
0
votes
0answers
231 views

what's the execution sequence of multiple child processes

use the follwing code to fork four chile processes #define _GNU_SOURCE #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <stdlib.h> pid_t pid; int ...
0
votes
1answer
76 views

Difference between pid_max/ulimit. How to create fake processes?

I am trying to learn the nuances between pid_max and setting user limits through ulimit. My understanding is that, no matter how high you set the user limits (for example setting user max processes to ...
1
vote
0answers
42 views

How can I create a function that memoizes other commands?

I have created the following function to memoize any command: # zsh (( $+functions[ec] )) || { ec() print -r -- "$@" ecerr() { ec "$@" 1>&2 } ecdbg() ecerr "$@" gq() { ec "${(q+...
16
votes
4answers
3k views

Why should fork() have been designed to return a file descriptor?

On his web page about the self-pipe trick, Dan Bernstein explains a race condition with select() and signals, offers a workaround and concludes that Of course, the Right Thing would be to have fork(...
0
votes
1answer
829 views

How to create a process in Linux?

I am a research student working on an experiment involving Linux, and for it I need to create processes. I know how to create them with the fork() system call, but I was wondering if there was an ...
1
vote
2answers
88 views

Listen to a folder and modify incoming files on change

I want to convert pcap files to json files using shell script (and tshark). As soon as one or more new pcap files are copied into a folder, the command tshark should be executed and the resulting json ...
-1
votes
1answer
1k views

Two processes with identical PID after a fork call

According to the fork documentation (man 2 fork): The child process is an exact duplicate of the parent process except for the following points: The child has its own unique process ID, and this PID ...
0
votes
0answers
458 views

systemd: process with fork() only shows logs after child exits

I have a program that fork()s and exits. Its child remains running for about 50 seconds, while it prints out messages each 5 seconds. When I run from a terminal it runs as expected, the parent exits, ...
3
votes
1answer
1k views

Why forking is used in a unit file of a service?

My nginx unitfile is following, [root@arif ~]# cat /usr/lib/systemd/system/nginx.service [Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup....
0
votes
0answers
70 views

how to get the program and parent program of do_fork()

I'm trying to make a kernel module that would gather statistics about which process forks what subprocess. Kprobe seems like it might work, but I'm struggling to understand the structs that I get. I ...
1
vote
1answer
244 views

Bash and Sudo forking continuously, hidden fork bomb?

I am experiencing a frustrating problem where my bash and sudo programs seem to be replicating thousands of processes on Mac. I have searched for all kinds of ways to stop them. I don't know what to ...
0
votes
2answers
1k views

Question about global environment variables and fork() & exec() [duplicate]

What I'm trying to understand is where does a child process inherit exported variables from it's parent process What I'm trying to understand is where a child process inherits exported environment ...
0
votes
2answers
560 views

Would a forked child always get same File ID as parent's file ID?

This might be a naive question, but given in parent open call returned me File ID 4. Is it guaranteed that child process will always get a File ID of 4 as well ?
0
votes
1answer
371 views

Why can't a fork bomb be killed in zsh in the same way as it's killed in bash?

I wanted to make my system a little bit more resilient to fork bombs. This can be partially achieved by using systemd's DefaultTasksMax parameter, or by using cgroup's pids controler for all valid ...
0
votes
2answers
2k views

Is copy-on-write not implemented based on page fault?

Operating System Concepts say fork() we can use a technique known as copy-on-write, which works by allowing the parent and child processes initially to share the same pages. ... When it is ...
0
votes
0answers
130 views

Listen for child process creation/fork

Say I have a process like so: #!/usr/bin/env bash node foo.js & pid=$! is there a way to listen to child processes that get created from pid? I want to create a list of pids that get created/...
57
votes
3answers
13k views

Why can't I crash my system with a fork bomb?

Recently I've been digging up information about processes in GNU/Linux and I met the infamous fork bomb : :(){ : | :& }; : Theoretically, it is supposed to duplicate itself infinitely until the ...
1
vote
1answer
888 views

fork() and COW behavior after exec()

We understand the COW behavior after a fork (as for example described here) as follows: fork creates a copy of the parent's page table for the child and marks the physical pages read only, so if any ...
2
votes
1answer
867 views

How to change working directory of a child process by posix_spawn? [closed]

In Linux (CentOS 7.5, kernel 3.10, gcc 7.3), is it possible to change the working directory of a child process created by posix_spawn before it runs a given process image (an executable)? If yes, how? ...
0
votes
0answers
360 views

can two running processes share the complete process image in physical memory, not just part of it?

can two running processes share the complete process image in physical memory, not just part of it? Here I am talking about the Linux operating systems(eg. Ubuntu). My thinking: I think it is ...
0
votes
0answers
142 views

AIX kernel internal stats of nmon: fork vs exec

Why the values of fork and exec stats shown on the kernel internal stats of nmon utility in AIX systems (k option) are so different? Usually the shown fork value is greater than the exec value, ...
0
votes
1answer
222 views

What happens if you fork before switch_root?

So typically an initramfs /init script will end with something like exec switch_root /newroot /sbin/init effectively replacing itself with systemd or whatever floats your boat. But what would happen ...
0
votes
2answers
431 views

Does a forked process copy all mapped memory when writing?

I understand that a forked process maps the parent's memory and copies it when writing to it. Does it copy just what it needs written or does it copy the entire mapped memory ?
56
votes
4answers
17k views

Why does a program with fork() sometimes print its output multiple times?

In Program 1 Hello world gets printed just once, but when I remove \n and run it (Program 2), the output gets printed 8 times. Can someone please explain me the significance of \n here and how it ...
2
votes
0answers
261 views

Is it possible to fork the current pane in tmux and put it in a new pane?

Often I have set up some temporary environment variables/modules and I would like them to persist as I create a split in Tmux. Is it possible to fork the current running program (i.e. bash) and put ...
0
votes
2answers
1k views

Physical Address of a variable in processes

When we create a child process by using the system call fork(), address space of parent process is copied to child process. The code below demonstrates this clearly. #include <stdio.h> #include ...
1
vote
2answers
324 views

Making a bind-mount take effect only in the context of the current process and its descendants

I have 2 files: /MyDir/a and /MyDir/MySubDir/b and am running a bash script, to which I want to add code to make file /a point to file /b, but only in the current process and its descendants. In ...
1
vote
2answers
98 views

Is it possible to findout if our command is sourced from a script or manually typed on command line?

We have an implementation to set environment for a particular tool with our custom command. Eg: custom_command tool_name This command logs the invokation time, user and tool_name in a log file. And ...
1
vote
1answer
2k views

Creating a specific process tree and terminating it

I am currently taking a Computer Systems class and am having trouble with a homework problem. I have to create this specific process tree: I also need it to stay in this state for a while (using ...
1
vote
0answers
546 views

Why did ulimit not stop my fork bomb that was running as the superuser?

I'm studying the fork bombs and I have some troubles to find a way to protect from this type of attack. As far as I know there are two possible solutions: ulimit cgroup I'm studying the first one on ...