Questions tagged [ipc]
Inter Process Communication usually refers to kernel services that allow processes on the same machine to communicate with each other.
113
questions
0
votes
1
answer
40
views
How to trace on continuously running process?
So I wanted to know how files are opened by zsh like .xinitrc, .xprofile, .zprofile, and exactly in which order. So I have decided to strace on zsh process with the grep command to see how the open ...
0
votes
1
answer
27
views
How does local socket IPC work on a multi CPU system?
There is the Supermicro X10DAi motherboard and the manual is here. On page 1-11 you can see that each CPU has it's own RAM.
Let's say program A is offering an API through a local socket /var/run/...
0
votes
1
answer
60
views
How to adjust the output of dbus-monitor?
I'm building a microservices application using the GNU tools and bash and I decided to use dbus-monitor and dbus-send for IPC between services.
The problem is that it's hard to make use of the ...
0
votes
1
answer
60
views
What IPC is used between an application and a library in Linux?
When you have a Linux application that depends on a library (dynamically-linked), how does the application communicate with the library? What inter-process communication method is used?
0
votes
1
answer
84
views
Is it possible to listen to a signal for when a systemd service has crashed/restarted?
This is a bit of a newbie question on systemd services, but let's say we have two systemd daemons, and for one of them its important to know whether the other one has crashed or restarted. Is it ...
1
vote
1
answer
1k
views
How to list all object paths under a dbus service only usign dbus command-line utility?
How can I list the object path under a dbus services using ONLY dbus-send command line utility?
For now, I can only list services:
dbus-send --system --dest=org.freedesktop.DBus --type=method_call --...
2
votes
1
answer
510
views
bash IPC using named pipes
Consider the below script
#!/usr/bin/bash
chan=/tmp/pipe.$$
mkfifo $chan
{
for x in a b c d e
do
echo $x > $chan
done
} &
for y in 1 2 3 4 5
do
x=$(cat $chan)
echo &...
1
vote
0
answers
261
views
File locking from different therads of the same process, including for Solaris OS
I need to perform a file lock when accessing a file from C/C++ code with the following requirements:
Blocking should be performed when access occurs not only from different processes, but also from ...
0
votes
0
answers
111
views
Are there any plans for Linux to add higher-level things like Windows' WaitForMultipleObjects?
WaitForMultipleObjects is one of several Windows kernel functions that can suspend and synchronize a calling thread with other threads until resources or etc are available, similar to flock in Linux, ...
0
votes
1
answer
81
views
How to redirect running process output from pipe to something else?
Is there any way to redirect stdout (1) from that "pipe" (I don't know exacly how I suppose interpret this, I will be glad if someone could explain how to treat this, or give me some read on ...
1
vote
0
answers
285
views
How to listen the requests sent to a unix socket
I'm learning docker and wanted to see the API commands sent by the client to the docker server/engine. I know that the communication between the two processes happens via /var/run/docker.sock. Is ...
1
vote
0
answers
193
views
Internals of signal handling
I have been studying this excellent Caltech lecture regarding the signal delivery mechanism, which talks about how current process state (stack, RIP etc) at the time of the signal generation is copied,...
0
votes
1
answer
1k
views
How to open an existing named semaphore?
Obviously O_CREAT and O_EXCL are not required when opening an existing semaphore.
O_CREAT is required when creating a new semaphore.
O_EXCL is only meaningful when OR-ing with O_CREAT, specifying that ...
0
votes
1
answer
1k
views
List processes associated with shared memory
When I run ipcs -m I get below info
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000 38699014 user 700 8125440 2 dest
0x00072 2064391 ...
1
vote
1
answer
220
views
How can we trace a TCP/IP packet in a server
I'm developing a backend service. The backend contains some processes, meaning that when a client sends a request to my server, the request will go through these processes.
For example, a request will ...
0
votes
0
answers
154
views
Is there dependency between Unix/Linux IPC facilities?
The Linux Programming Interface summarizes UNIX/Linux IPC facilities for communication and synchronization
Is there dependency between any of the facilities? Either between their interfaces or their (...
0
votes
1
answer
918
views
systemd service permission error when binding to ipc port inside a VM
I'm using vagrant to emulate services with network communication. My base box is the ubuntu/bionic64. The application that I'm porting to the VM is written in C++ and binds to ipc addresses as follows:...
1
vote
1
answer
140
views
Is RAM usage of IPC a part of the RAM usage of a program
I'm learning how to use Message Queue in Linux and I've found a simple example: https://www.geeksforgeeks.org/ipc-using-message-queues/.
With the reader and writer in this link, I can read and write ...
-2
votes
1
answer
718
views
Does execve() make a child unrelated to its parent?
When a process fork() a child, the two processes are related. The child inherits a lot of things from the parent, including some IPC objects such as pipes and anonymous memory mappings.
If the child ...
0
votes
1
answer
876
views
Do anonymous memory mapping and shared memory allocate space from physical memory only?
In Linux,
when using mmap() for anonymous memory mapping, or using malloc(), do they allocate "space" from only physical memory, or either physical memory or swap or their combination? (I ...
0
votes
1
answer
37
views
How can I separate an already-running process from its parent?
There are three processes:
A "control program", call it CP.
CP launches a manager process, call it MP.
MP launches a worker process, call it WP.
CP is the only program I can modify. All ...
0
votes
2
answers
80
views
Get output and input into daemon processes
Background
When a SIGHUP is sent to a running nginx master process to reconfigure, if there're password encrypted certificate key, nginx(specifically the openssl library) will ask for input, as in the ...
4
votes
1
answer
2k
views
/proc/[pid]/fd/[0, 1, 2]: No such file or device - even though file exists
I'm trying to access a process' stdio streams from outside its parent process. I've found the /proc/[pid]/fd directory, but when I try
$ cat /proc/[pid]/fd/1
I get a No such file or device error. I ...
0
votes
1
answer
414
views
Programming - Communicating with chess engine stockfish / FIFOs / Bash redirections
I'm trying to write a little chess program - actually more of a chess GUI.
The chess GUI should use the stockfish chess engine in the background when the player plays
against the computer.
I got ...
0
votes
1
answer
180
views
How to guarantee that that only a specific process reads from a named pipe?
Suppose that, at time (1), I create a named pipe using Python with the goal that eventually this Python process would write something to that named pipe. Why? Because, at time (2), there is another ...
1
vote
1
answer
2k
views
How to get notified when the other end of a socketpair is closed?
I have a parent process (client) talking with a child process (server) over Unix Domain sockets (aka IPC Sockets).
The sockets are created using socketpair() and are of type datagram.
I use ...
2
votes
1
answer
1k
views
Binding a AF_UNIX to any existing file?
Can we bind a Unix domain socket to any random existing file ?
If no, how do you recognize a file that is used by a socket ?
1
vote
1
answer
715
views
Why below code is not able to unblock SIGINT signal
I am trying my hand on Linux Signals. Where I have created a scenario mentioned below:
Initially block all SIGINT signals using sigprocmask().
If sender send SIGUSR1 signal then unblock SIGINT for ...
3
votes
1
answer
120
views
Obtaining and returning a permit from a semaphore in a shell script
In a shell script I can use:
ipcmk -S 4
To create a semaphore with 4 slots. With ipcrm I could delete the semaphore again. But how can I use it? I cannot find any semwait, ipcsemget or similar. How ...
2
votes
1
answer
2k
views
How do the kernel and processes communicate?
In Linux there are various ways for inter process communication, for example, shared memory, (named) pipe, socket, message queue.
What are equivalent or similar ways in which Linux kernel and ...
2
votes
1
answer
665
views
Optimal sharing of a ring buffer between processes
We're implementing an embedded Linux system and have to provide a live updating graph on a website that shows data coming from a background process in the system.
The question is how to optimally ...
2
votes
2
answers
2k
views
How does journald know the PID of a process that produces log data?
When I look at journalctl, it tells me the PID and the program name(or service name?) of a log entry.
Then I wondered, logs are created by other processes, how do systemd-journald know the PID of ...
0
votes
1
answer
1k
views
Why when I run `$ ipcs` are all shared memory segment keys "0x00000000"?
So when I run $ ipcs, the shared memory segment section returns a variety of results:
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status ...
0
votes
1
answer
3k
views
bash: Reading a full record from a fifo
I wish to send a command to process A, from process B, via a FIFO.
The command will be a word or a sentence, but wholly contained on a "\n" terminated line - but could, in general, be a multi-line ...
2
votes
1
answer
115
views
Does pseudoterminal transfer byte stream or message?
From The Linux Programming Interface
under "data transfer" under "communication", we have "byte stream", "message" and "pseudoterminal".
Does pseudoterminal belong to byte stream instead, just like ...
1
vote
1
answer
194
views
Can FIFO or other thing not block on writer's access, and instead just drop data?
FIFO is problematic in use because both reader and writer have to open it – if one of them is being late, the other one is blocked inside the operating system.
I have to implement a publishing ...
1
vote
1
answer
1k
views
netlink: GNEL_ID_GENERATE definition removed from RHEL7.5 kernel library
We have a kernel module that was building fine for RedHat family of Linux distribution, until the recent RHEL7.5.
When trying to build on RHEL7.5, we've got an error of:
...error: ‘GENL_ID_GENERATE’...
3
votes
1
answer
7k
views
What is the purpose of using a FIFO vs a temporary file or a pipe?
From APUE
FIFOs can be used to duplicate an output stream in a series of shell
commands. This prevents writing the data to an intermediate disk
file (similar to using pipes to avoid intermediate ...
4
votes
1
answer
8k
views
Sharing file descriptors
If file descriptors are specific to each process (i.e. two processes may use the same file descriptor id to refer to different open files) then how is it possible to share transfer file descriptors (e....
0
votes
0
answers
140
views
Shared buffer for user space processes
Currently Im implementing a shared buffer between user space processes. For that, I have a library which opens a client UNIX socket for the client processes to dump events into the server socket. My ...
1
vote
0
answers
231
views
same netlink socket for inter-user space process communication and user space-kernel space communication?
Is it possible to use the same netlink socket for kernel - user space process and witin user space process communication??
1
vote
0
answers
1k
views
Communication between user space and kernel space - AF_netlink + AF_Unix
I am new to IPC and am trying to implement a common buffer between kernel and user space processes. My design will be in such a way,
I will have a library(in user space) where my client socket tries ...
0
votes
1
answer
74
views
What methods exist for capturing stdout into a buffer that is automatically cleared on read?
I want to store the stdout from a process into a buffer and have the buffer emptied once read, FIFO style.
I know that I can pipe the stdout, but the pipe/file will keep growing and contain data that ...
0
votes
1
answer
139
views
Question about IPC [closed]
Hello and thanks in advance for any help anyone can offer to help me understand this
I'm curious about a 30.000 ft view on how IPC works in Linux between parent-child processes...I understand there's ...
1
vote
0
answers
301
views
How to measure the bandwidth of IPC
I need to do some measure about communication between two processes in my Ubuntu server.
Saying that the two processes are process A and process B. A keeps sending data to B.
I need to get two kinds ...
0
votes
1
answer
629
views
Issues due to independent concurrent writes to shared memory
Actually I would like to know the issues caused by independent concurrent writes to shared memory.
To be more elobarote, consider we have three processes (proc1, proc2, proc3).
These 3 processes are ...
0
votes
1
answer
2k
views
Handling multiple messages in message queue
I've done some research about this topic but I didn't understand it quite well.
From msgsnd man page :
The msgsnd() system call appends a copy of the message pointed to by
msgp to the ...
0
votes
1
answer
644
views
Handling SIGALRM in two different ways
How can we handle 2 different alarms sent by alarm()??
For example if I have A=5 and B=10, how can I say to my program to do an action after A seconds and a different one after B seconds without ...
5
votes
1
answer
2k
views
Command line pub / sub without a server?
Is there a way of implementing the publish / subscribe pattern from the command line without using a server process? This need only work on one machine.
The main thing I want to avoid by not having a ...
2
votes
0
answers
595
views
trapping signals without interfering with other signals
When trapping a signal in a shell script, the trap commands are not executed until the current command finishes. For example, consider the following shell script:
#!/bin/bash
trap 'echo "SIGTERM ...