Linux Process Call Examles

hi all
i am new to linux system programming.
request u to give idea with examples for linux process creation fork() and exec setsig() setalarm(). how to catch these process id's

Regards
Bala


Similar Content



How To Share The Same Code Segment Between Two Processes Using Mmaps?

Hi Experts:

I'm new to Linux,recently i was confused with the words as below:

"To achieve sharing,the process A mmaps the executable file of process B into into the virtual address space of process A. As the Linux loader maps the executable files into the process when executing them,the two processes share the memory image of the mapped file"

questions:
1,What are the "executable files",are they ELF files?
2,How to do "mmaps"?if process A and process B share the same code segment, ,where is process A's own code segment?


Thank you in advance.

Qnx Pidin Like Tool For Linux

I am wondering if there is a way for get the same output in linux as the one you get using pidin on qnx. I am interested in the columns state and blocked: http://www.qnx.com/developers/docs/6...n.html#Blocked.
For example if the state is REPLY or SEND in the Blocked column we get the process ID to which our process is blocked to.
Is there any way to get this kind of information on linux? Maybe using ps or something else?

Add Files To A PXE Image

Hello,

I am new to Linux images (pxe, livecd). I would like to add files to a linux image, like something under etc or var, and have the files be available on the client.
The server I am working on was already configured with a pxe image, and only 2 files are present under the pxe client folder: initrd and vmlinuz. So I am wondering if either of these files contain the dirs /etc, /var, etc..., and how I could add files to them.

To give some background, I have done the same thing in Windows. An image in Windows is typically either boot.img or install.img. You can mount either of these to a folder using the Windows SDK tool imagex.exe /mountrw <img file> 1 <mount point>. From here you can add/remove/modify any files you want. Then commit the changes with imagex.exe /unmount <mountpoint> /commit.

Can someone provide insight to the linux image creation process, which of the files (initrd, vmlinuz/vmlinux, etc...) contain what for the client boot, or something similar to the Windows Image editing process?

I know I'm asking for a range of info, but pointers to any material to help my understanding will be greatly appreciated.

Thanks,
Jon

Kill Zombie Process Via C Program Without Killing Main Process

Hi ,
In my program, for a process A executing operation, there are multiple threads created.
One of the thread A checks whether process is active or not
Second thread B executes a function
One of the periodic thread C calls a callback function that executes an audit after every 30 secs.

In the audit , the function uses g_spawn_commmand_line_sync() function to spawn a child process that executes a command line (shell script).

Since g_spawn_commmand_line_sync() spawns a new child process .
In the error case scenario, the spawned child process got stuck and became zombie process. It did not get killed.Also it acquired sockets which were assigned to a thread B executing operation.

Even though the thread B got terminated ,the child process did not release the sockets that were connected to it.


My question is ,I have to automate this in C program that if it finds spawned process of g_spawn_commmand_line_sync() defunct, the
health check thread B should be able to clean it without klling the main process.

i could not find any spawn function that will help me find the PID of g_spawn_commmand_line_sync() spawned process.

I get the details from ps commands. But how can I find it in a c-program?

What Is Context Switching

I'm currently reading Brian Wards book: How Linux Works: What Every Superuser Should Know 2nd edition and I'm confused about step 3 in the context of the other steps:
1. The CPU (the actual hardware) interrupts the current process based on an internal timer, switches into kernel mode, and hands control back to the kernel.

2. The kernel records the current state of the CPU and memory, which will be essential to resuming the process that was just interrupted.

3. The kernel performs any tasks that might have come up during the preceding time slice (such as collecting data from input and output, or I/O, operations).

4. The kernel is now ready to let another process run. The kernel analyzes the list of processes that are ready to run and chooses one.

5. The kernel prepares the memory for this new process, and then prepares the CPU.

6. The kernel tells the CPU how long the time slice for the new process will last.

7. The kernel switches the CPU into user mode and hands control of the CPU to the process.

What does he mean preceding time slice as surely the tasks have been completed during the time slice in steps 1-2?

How To Read The Signal Queue Of A Process??

Hi,

I am not completely new to linux.

My problem is the following:

The signal queue of my process gets filled with time.

With /proc/PID/status --> SigQ 6032/6032 i can see that the queue is full!

And my software is waiting on signals to process data. So I want to know wich signal filled my queue and I am interested to see the attached data of the signal --> sival_int or sival_ptr, I use sigwaitinfo() to read the data.

Equivalent Command For "time -v" In Centos

I want to know the approximate maximum memory usage by my process. If I start the process using "time -v <myprocess>", I get the output after it terminates. This works fine in RedHat Enterprise Linux, but not in Centos. There does not seem to be an option "-v" for time. Do I miss anything ? What is the equivalent in Centos to know the peak memory usage by a process ?

Linux Newbie Help!!

hi all,

am very new to linux and currently working on CentOS.

need help on which books to refer to understand the workings of the OS (detailed understanding)

stuffs like boot process, inodes etc.

appreciate any kind of help.

regards

Ubuntu 'dpkg--configure-a' E: Dpkg Was Interrupted Error

Hi,
I am very new to linux, and frankly I do not know a whole lot about computers in general, as I'm entirely self taught, and that was all on windows. I really like the idea and concept of linux and ubuntu, and am in the process of learning. I have recently installed Ubuntu 8.04 LTS on an ex Vista computer at work (upon the urging by the boss). I can give more information on the system if needed. However, I think the problem may not be with the system. This is what I got. I installed the o/s and started downloading the updates from the list. As I tried to install Samba and Wine, all of a sudden things started to become complicated. As I'm doing this at work, and everyone is excited to 'play' with this new o/s, someone tried to download limewire as well, when I was away. I didn't see the error messages at that point, but they apparently had some message about java, and tried to shut everything down. Now when I came back, I get this message:

E: dpkg was interrupted you must manually run 'dpkg -- configure - a' to correct.
Problem E: _cache->open()failed

So, not knowing much about linux and even less about using the terminal, I did open the terminal, and typed in: dpkg--configure-a and hit enter. Then it tells me that that command is not found.

I have followed some other posts that deal with this problem, however, all the remedies that worked for them did not work for me. I could use some help, please. My other option is to just reinstall the o/s all over and start new. Thank you.

Getting The Last Background Pid

Hi, I know that it is possible to get the last background pid using the $! command, however when I use it in my QT application I got a wrong result. Below follows an example where this procedure works
Code:
[linux@localhost ~]$ (sleep 6 && echo "A test") &
[1] 3312
[linux@localhost ~]$ echo $!
3312
[linux@localhost ~]$ A test

Now my Qt application, where I got a wrong result:
Code:
./dbsync &>/dev/null &
[1] 5047
[linux@localhost comm5]$ echo $!
5047

but using the ps command it is possible to verify that the pid related to the right process is not the 5047 but 5050.
Generally it is the process that comes with the command Code:
echo $!

added of two.

I use QCoreApplication in my program. I do not know if it has something to do with this error.

Any advice is welcome