Equivalent of ctrl c in command to cancel a program
Try:
kill -SIGINT processPIDHere
Basically Ctrl C sends the SIGINT
(interrupt) signal while kill sends the SIGTERM
(termination) signal by default unless you specify the signal to send.
What is the equivalent code of the CTRL+C task killing on windows?
First of all why you need the command to fire from Java when you have the hold of Process
object by which you launch a jar, you can simply use destroy();
to kill the process you have launched.
Process p = Runtime.getRuntime().exec( "bla bla bla");
p.destroy();
And if you really need to do it manually from command prompt then you have to find the process id and kill it by using the command you have already mentioned, you can read more here kill process command line windows 7 and Microsoft Taskkill
Linux-like Ctrl-C (KeyboardInterrupt) for the Windows cmd line?
You can trap ^C on Windows with SIGINT, just like Linux. The Windows shell, such as it is, doesn't support Unix style job control (at least not in a way analogous to Unix shells), and ^Z is actually the ^D analog for Windows.
Prevent C program from getting killed with ctrl-c
When you press Ctrl-C while a program is running, what happens underneath is that your process receives a signal called SIGINT, the default action when a process receives this signal is to terminate itself.
So your goal should be to modify this behavior:
Use the function signal
to catch the signal sent to your process when ctrl-c
you should go with something like this:
signal(SIGINT, handler_function);//handler_function is a void returning function that takes one int paramter, you can do nothing there if you just want to prevent your process from terminating.
P.S Here's the man page for further information :D
P.P.S If you're not familier with what a signal is, please refer to this wikipedia page if you find something confusing there, let us know.
How to end a whileloop with ctrl+c in c on windows?
#include <windows.h>
#include <stdio.h>
static end_flag = 0;
BOOL WINAPI controlHandler(DWORD type){
if(type == CTRL_C_EVENT){
end_flag = 1;
return TRUE;
}
return FALSE;
}
int main(){
char vector[10];
if (!SetConsoleCtrlHandler(controlHandler, TRUE)) {
fprintf(stderr, "Failed SetConsoleCtrlHandler");
return -1;
}
while(!end_flag){
printf("Write a number ");
scanf("%s",vector);
}
printf("Goodbye");
return 0;
}
CTRL+Z version
#include <stdio.h>
int main(){
char vector[10];
while(1){
printf("Write a number ");
if(scanf("%s", vector)==EOF)//press CTRL+Z
break;
}
printf("Goodbye");
return 0;
}
Ctrl-C for quitting Python in Powershell now not working
This is a bug that recently appeared in Windows 10 Insider build 15002.
A work around is to change the Mapped Keys from Ctrl C to something like Ctrl K
If you are not familar how to do this, You can look up or at stty -a
You can run this command on each bash session that will map your Terminate to Ctrl + K
stty intr \^k
As a TEMP solution you could include this in your Bashrc so it is executed on each new session
This bug has been reported already on Github #1569
Cancel CTRL+C while system() is executing [C++]
You can ignore a specific signal with SIG_IGN and set it back to default with SIG_DFL.
void command() {
std::signal(SIGINT, SIG_IGN);
system("some command");
std::signal(SIGINT, SIG_DFL);
}
https://en.cppreference.com/w/cpp/utility/program/signal
Related Topics
Linux/Bash, Using Ps -O to Get Process by Specific Name
Mongodb Data Directory /Data/Db Not Found
Ldconfig Error:"Is Not a Symbolic Link" When Using Linux Loader
How to Create Virtual Ethernet Devices in Linux
Using Iconv to Convert from Utf-16Le to Utf-8
Writing to Serial Port from Linux Command Line
Mongodb Service Not Running in Fedora
Ubuntu "No Space Left on Device" But There Is Tons of Space
Using Bash Script to Find Line Number of String in File
Getting Stty: Standard Input: Inappropriate Ioctl for Device When Using Scp Through an Ssh Tunnel
Limiting the Time a Program Runs in Linux
In Bash, Why 'X=100 Echo $X' Doesn't Print Anything