Sponsored Content
Full Discussion: SIGCHLD trace problem
Top Forums Programming SIGCHLD trace problem Post 302239195 by aaronwong on Tuesday 23rd of September 2008 05:08:35 AM
Old 09-23-2008
yes, there is really a pratical problem I want to fix...I'm sorry for my poor English that I did not express myself clearly with the word "illegal"...Smilie

what I meant is that in our system or according to our design requirements, there is a process(just like B in this example), its parent is A, and A will handle SIGCHLD from B. But we can only allow one process(C) to kill B, any other process killing B will be considered as an error case in A.

so we have to distinguish who kills this process B.

Actually, B here is ntpd service, we want to start it as A's child, let ntpd run in foreground mode. But if we re-configure ntpd, ntpd has to be restarted to reload the new configuration. So we allow C who has the privilege to re-configure ntpd to restart ntpd, but not other processes.

currently, I'd like to let C set a flag in /var/run/ntpd.pid file after re-configuration and before restart ntpd.

So I come here for help to see whether there is more smart ideas..Smilie

Thank you.
 

10 More Discussions You Might Find Interesting

1. Programming

Need help with SIGCHLD

Hello everybody, this is my first post on this forum. I have a program that has a child process that sleeps for 5 second and exit. I'm suppose to modify this program so that when the child exits, the parent reports the exit status of the child, so I also have to deal with SIGINT and SIGQUIT. Can... (1 Reply)
Discussion started by: Unlimited Sky
1 Replies

2. UNIX for Advanced & Expert Users

catch SIGCHLD signal in parent process

I want to catch SIGCHLD signal in parent process. I can't use wait() system call to catch SIGCHLD according to project requirment. Operating system linux 3.1 can any one have a solution for this. Thanking you, ranjan (2 Replies)
Discussion started by: ranjan
2 Replies

3. Programming

signal handler for SIGCHLD

Hi, I have an c++ application which uses the function fork and execvp(). The parent does not wait until the child ends. The parents just creates children and let them do their stuff. You can see the parent program as a batch-manager. I have added a SIGCHLD handler to the program: void... (3 Replies)
Discussion started by: jens
3 Replies

4. Programming

When is SIGCHLD is raised.

Hi, I have 2 processes X and Y. Y is exec() from X. In Y i have an exit handler, which is called when i return from main. With in exit handler i delete and object which in turn calls the destructor of the object, which terminates all the threads of Y. I believe that SIGCHLD is raised by Y as... (4 Replies)
Discussion started by: supersumanth
4 Replies

5. Programming

adv reqd on SIGCHLD on accept call

Hi, I have small problem. In my (concurrent)server programm, I am handling accept problem from client like this. sample of server code. /*******************/ end = 0; while (! end ) { sockfd = accept(...) if(sockfd == -1) { if (errno == EINTR) /* this is bcoz... (5 Replies)
Discussion started by: stevenjagan
5 Replies

6. UNIX for Dummies Questions & Answers

About SIGCHLD

When the SIGCHLD is sent? SIGCHLD is sent either a child exits spontaneously (e.g. exit(0)) or it is killed ? thank you in advance (3 Replies)
Discussion started by: Puntino
3 Replies

7. UNIX for Dummies Questions & Answers

Who sent the process SIGCHLD ?

I want to know whicj process send the signal SIGCHLD to the parent's child. Thank you in advance, (1 Reply)
Discussion started by: Puntino
1 Replies

8. Solaris

Log Trace

Hi I would like to display only error messages from my log files while monotring application on my solaris box using tail command. Is there other way we can monitor please let me know? In general # tail -f "xyz.log' ---> this will display current activity of the logs, instead i would like... (4 Replies)
Discussion started by: gkrishnag
4 Replies

9. Programming

SIGCHLD interrupts its own handler

Hi. I have a program whose job it is to manage 15 child processes. Sometimes these children die (sometimes deliberately other times with a SEGV). This causes a SIGCHLD to be sent to my program which uses waitpid() in the signal handler to gather information and, in most cases, restart the child.... (3 Replies)
Discussion started by: jrichemont
3 Replies

10. UNIX for Dummies Questions & Answers

using SIGCHLD

I'm testing out how to use SIGCHLD and I had a question about intercepting the signal and executing an action in the signal handler. signal(SIGCHLD,countdown); What I'm trying to achieve is be able to printf(Hello) every second that child is set to sleep. I'm setting sleep = 3; so... (1 Reply)
Discussion started by: l flipboi l
1 Replies
RADIOCLKD(1)						   Network Time Protocol Daemon 					      RADIOCLKD(1)

NAME
radioclkd - decode time from radio clock(s) attached to serial port SYNOPSIS
radioclkd [ -tphv ] device DESCRIPTION
radioclkd is a simple daemon that decodes the time from a radio clock device attached to the DCD and/or CTS and/or DSR status lines of serial port of a computer. It is able to decode the DCF77, MSF and WWVB time signals. The received time is then sent to ntpd using the shared memory reference clock driver. The type of time signal being received is automatically determined. If you have problems getting the program to work using interrupts, the following command is known to help in many instances. If this fails you can always fall back to the polling method. stty crtscts < /dev/ttyS0 Details on a cheap and easy to make device for receiving these time signals can be found at http://www.buzzard.org.uk/jonathan/radioclock.html OPTIONS
-p, --poll Poll the serial port for changes of status in the DCD, CTS and DSR lines rather than use interrupts -t, --test Enter test mode printing the length of each pulse and the decoded time at the end of each minute on stdout. The time is not sent to ntpd using the shared memory reference clock driver in this mode. -h, --help Print a short synopsis of the command line arguments. -v, --version Print the version number and then exit. CONFIGURATION
Configuration is very simple. Use server 127.127.28.0 in your ntp.conf file for a clock attached to the DCD line, server 127.127.28.1 for a clock attached to the CTS line, and server 127.127.28.2 for a clock attached to the DSR line. You will also want to use a fudge line on the server to change the displayed refid. CALIBRATION
Due to delays in the propogation of the radio signal, it's processing by the receiver board and the latency of the operating system the time decoded by the receiver will be slightly offset from actual UTC. Typically this delay will be less than 20ms, so unless you are very fussy about the time, or are using more than one time source, such as a GPS unit, other radio clock or NTP server on the internet you can ignore this section. The basics of the calibration procedure is to determine the average offset of the radio receiver, and use the time1 fudge factor in ntp.conf to bring the receiver as close as possible to the real time. The easiest way of determining the offset of the radio receivers time is to run it against a reference clock that does not suffer from these problems. The best reference clock would be a GPS unit. This might be a GPS unit that you don't wish to dedicate to time keeping, or a borrowed unit. If this is not possible you could use a stratum 1 server on the internet. The method of calibration is quite simple. We attach the calibration reference clock to the computer and fudge the stratum of our radio receiver up to say 5. This way we can be sure that ntpd will lock onto the calibration reference clock. We need to make sure that ntpd is configured to collect peer statistics so make sure we have some lines similar to these in ntp.conf statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen peerstats file peerstats type day enable After that we restart ntpd and leave it running for several hours. We can then make a copy the peerstats file. The trick is to remove all the entries before ntpd has come into close aggrement with the calibration reference clock and then run the peer.awk script in the scripts/stats directory of the ntp distribution. This will give us a mean offset of our radio receivers in milliseconds. This can them be converted into seconds and added to the fudge line in ntp.conf for our receiver. The final step is to remove the change in stratum level for our reference clock and restart ntpd. If you move the receiver any significant distance then you will need to repeat this calibration step. Across the room or around the current building will be fine, but if you move it to the next town/city then you will need to recalibrate. IN USE
The version of ntpd that comes with most Linux distributions does not have the shared memory reference clock driver compiled in by default. This can be identified by checking the logs after ntpd is started. If the shared memory reference clock driver is not compiled in then the logs will contain warnings about the reference clock driver not being recognized. To compile ntpd with the shared memory reference clock driver you must specify the --enable-SHM option when running configure. Neither radioclkd or ntpd ever mark the shared memory segment for deletion. If you stop using the shared memory reference clock driver therefore any shared memory segments will persist until you reboot or manually delete the segment using ipcrm. The segments can be identi- fied as the one with key 0x4e545030, 0x4e545031 or 0x4e545032 using the ipcs command. BUGS
If you are running a kernel with the PPS kit and have a clock attached to the DCD line you may experience lockups. If you encounter this problem the currently recomended solution is to move the clock to either the CTS or DSR lines. AUTHOR
This program was written by Jonathan Buzzard <jonathan@buzzard.org.uk> and may be freely distributed under the terms of the GNU General Public License. There is ABSOLUTELY NO WARRANTY for this program. Version 1.0 19 Jan 2003 RADIOCLKD(1)
All times are GMT -4. The time now is 06:09 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy