Invoking the signal command isn't the same as invoking the kill utility from the shell.
Sending a signal with kill causes GDB to decide what to do with the signal depending on the signal handling tables (see " Signals "). The signal command passes the signal directly to your program.
Alternatively, if signal is zero, continue execution without giving a signal. This is useful when your program stopped on account of a signal and would ordinary see the signal when resumed with the continue command; signal 0 causes it to resume without a signal.
The signal command doesn't repeat when you press Enter a second time after executing the command.