10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am having issues with trap not working inside a script. I am currently trying this on a Knoppix system V 5.1. What I would like to happen is when I press control c, a message gets echoed and the script is ended. For example:
#! /bin/bash
trap "echo CTRL c was pressed ; break" SIGINT... (11 Replies)
Discussion started by: Basherrr
11 Replies
2. UNIX for Advanced & Expert Users
Hi All,
The problem statement is as below:
Problem: A process (exe) is getting executed in background. The output of this process is getting logged in a file. After successfully running for some time the process gets terminated. In the log file following is present:
^M[7m Interrupt ^M[27m... (8 Replies)
Discussion started by: Praty.27
8 Replies
3. UNIX for Dummies Questions & Answers
I was wondering about following. If I have set of 3 signals. And they are all blocked.Now at some point in the program the set is unblocked. Which signal will be delivered first.This is my set....SIGTSTP,SIGQUIT,SIGINT.When I added them in the set and unblock them I did it in following order...
... (1 Reply)
Discussion started by: joker40
1 Replies
4. UNIX for Dummies Questions & Answers
I know how to add signal to a set. But what if I want to add 2 or 3 signals to the set.
I know I can use sigaddset (&set,SIGBUS)....but what if I want to add SIGBUS and SIGALRM at once. Do i have to do it like this..
sigaddset (&set,SIGBUS);
sigaddset (&set,SIGALRM);
Is there another way to... (0 Replies)
Discussion started by: joker40
0 Replies
5. UNIX for Dummies Questions & Answers
I have following problem with this code..
First time trough the main loop.....
perror gives ....blocked signal:success(all other times gives illlegal seek)
Should every time trought the main loop be success??
And the perror otside of main loop...didn't change mask:success
That line of code... (2 Replies)
Discussion started by: joker40
2 Replies
6. UNIX for Dummies Questions & Answers
I am having trouble with folowing
sigset_t s; // now s represents set of signals
sigemptyset(&s) ; // initialize this set and exclude all the signals from it.is it empty?
sigaddset(&s,SIGILL);//this set containts only SIGILL signal
sigprocmask(SIG_BLOCK,&s,NULL);//lost on this one
Can... (3 Replies)
Discussion started by: joker40
3 Replies
7. Programming
Hi,
In our program, we are using SIGTERM and i tired to put break point in this function. But my debuger is unable to brake at that point.
I am working on Mac X and using XCode.
Thanks (1 Reply)
Discussion started by: Saurabh78
1 Replies
8. Programming
How can use signals in a C program If i want a child program to signal it's parent program that it(child) program has completed the task that it was assigned.:confused: (2 Replies)
Discussion started by: kapilv
2 Replies
9. UNIX for Dummies Questions & Answers
(posted this in the scripting forum as well, but figured it should go here) So, what's going on is this:
For our program, we had to create our own shell, and if the user pressed ctrl-c just at the cmdline, then this signal would be ignored, but if there is a foreground process running, let's... (0 Replies)
Discussion started by: blind melon
0 Replies
10. Programming
does the way of handling, interrupting signals in HP-UX same as that of solaris. If there is difference than what it is.?:confused: (1 Reply)
Discussion started by: kapilv
1 Replies
PCNTL_SIGNAL(3) 1 PCNTL_SIGNAL(3)
pcntl_signal - Installs a signal handler
SYNOPSIS
bool pcntl_signal (int $signo, callable|int $handler, [bool $restart_syscalls = true])
DESCRIPTION
The pcntl_signal(3) function installs a new signal handler or replaces the current signal handler for the signal indicated by $signo.
PARAMETERS
o $signo
- The signal number.
o $handler
- The signal handler. This may be either a callable, which will be invoked to handle the signal, or either of the two global con-
stants SIG_IGN or SIG_DFL, which will ignore the signal or restore the default signal handler respectively. If a callable is
given, it must implement the following signature:
void handler (int $signo)
o $signo
- The signal being handled.
Note
Note that when you set a handler to an object method, that object's reference count is increased which makes it persist
until you either change the handler to something else, or your script ends.
o $restart_syscalls
- Specifies whether system call restarting should be used when this signal arrives.
RETURN VALUES
Returns TRUE on success or FALSE on failure.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 4.3.0 | |
| | |
| | As of PHP 4.3.0 PCNTL uses ticks as the signal |
| | handle callback mechanism, which is much faster |
| | than the previous mechanism. This change follows |
| | the same semantics as using "user ticks". You |
| | must use the declare() statement to specify the |
| | locations in your program where callbacks are |
| | allowed to occur for the signal handler to func- |
| | tion properly (as used in the example below). |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
pcntl_signal(3) example
<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);
// signal handler function
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
// handle shutdown tasks
exit;
break;
case SIGHUP:
// handle restart tasks
break;
case SIGUSR1:
echo "Caught SIGUSR1...
";
break;
default:
// handle all other signals
}
}
echo "Installing signal handler...
";
// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");
// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something"));
echo"Generating signal SIGUSR1 to self...
";
// send SIGUSR1 to current process id
// posix_* functions require the posix extension
posix_kill(posix_getpid(), SIGUSR1);
echo "Done
";
?>
NOTES
pcntl_signal(3) doesn't stack the signal handlers, but replaces them.
SEE ALSO
pcntl_fork(3), pcntl_waitpid(3).
PHP Documentation Group PCNTL_SIGNAL(3)