Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从命令行向进程发送信号_Linux_Signals - Fatal编程技术网

Linux 从命令行向进程发送信号

Linux 从命令行向进程发送信号,linux,signals,Linux,Signals,我读过信号,知道如何从命令行向进程发送信号。照办 ps -C executable 了解流程的pid,然后 kill -s signal pid(number) 但是,如果可能的话,我想找到一种更具交互性和通用性的方法 我想从命令行向特定进程发送一个信号。我不想打印我想要发送信号的进程的PID,而是使用代码能够理解应该发送信号的进程的方式 除此之外,我想详细了解kill命令的作用 它会杀死发出信号的过程吗 它是否会终止调用它的进程 如果它终止一个进程,则意味着它类似于执行退出(0),或者该

我读过信号,知道如何从命令行向进程发送信号。照办

ps -C executable
了解流程的pid,然后

kill -s signal pid(number)
但是,如果可能的话,我想找到一种更具交互性和通用性的方法

我想从命令行向特定进程发送一个信号。我不想打印我想要发送信号的进程的PID,而是使用代码能够理解应该发送信号的进程的方式

除此之外,我想详细了解kill命令的作用

  • 它会杀死发出信号的过程吗
  • 它是否会终止调用它的进程
  • 如果它终止一个进程,则意味着它类似于执行退出(0),或者该进程在信号发送回后是否继续

据我所知,您希望通过进程名称而不是PID向进程发送信号。这可以通过组合两个命令轻松实现:

kill -s signal $(ps -C executable)

它会杀死发出信号的过程吗

杀死
可以杀死。不一定

杀人

kill命令将指定的信号发送到指定的 过程 或进程组

这意味着,
kill
命令通常用于**发送任何信号。

如果它终止一个进程,则意味着它类似于执行退出(0),或者 信号发回后,过程是否继续

发件人:

SIGKILL
信号用于导致程序立即终止。信息技术 无法处理或忽略,因此总是致命的。它是 也不可能阻止此信号

如果进程收到
SIGKILL
信号,它将立即终止(未调用析构函数,未完成清理)。唯一不终止的进程是不间断进程


可以找到Linux上可用的信号的完整列表

我想从命令行向特定进程发送一个信号。我不想打印我想要发送信号的进程的PID,而是使用代码能够理解应该发送信号的进程的方式

如果您有可用的
killall
命令,则该命令满足这些条件。它允许您根据进程名称指定要发送信号的进程。以下所有注释同样适用于通过
killall
发送信号和通过
kill
发送信号的效果

除此之外,我想详细了解kill命令的作用

它会杀死发出信号的过程吗

它传递指定的信号。就这样。它所能传递的某些信号将具有终止进程的效果

它是否会终止调用它的进程

它只向您指定的进程发送信号

如果它终止了一个进程,这意味着它类似于do exit(0),或者该进程在信号发送回来后会继续吗

进程可以在不终止的情况下处理某些信号。当一个进程接收到这些信号中的一个时,会发生什么具体情况取决于该进程。如果一个进程没有为其默认操作是终止该进程的信号提供处理程序,那么该进程将死亡,永远不会恢复。其效果有点像调用
exit()
函数或从
main()
返回,但终止是突然的,没有调用exit处理程序之类的。我更喜欢这样:

pkill -signal processname
以下是我不时使用的一个具体示例:

pkill -USR1 Squeak

请参见

那么,您希望以何种形式发送信号?你能举例说明吗?@EugeneSh。我想说,在代码中运行函数的命令是完美的。我可以创建一个函数来发送信号而不会出现问题。我仍然想知道kill的作用是什么,所以我可以毫无问题地使用kill,它不会暂停或终止任何进程,只要我不使用SIGKILL信号?但是,我有3个进程,所以我认为你的答案建议会将信号发送给所有3个进程,而不是1个specific@Andr艾尔梅达
kill
只发送信号。还有其他信号,如停止/终止程序的
SIGSTOP
SIGTERM
。您需要查看每个信号的功能,以确定其功能。