如何使用bash向进程(PID)发送信号,使其在运行的同一个shell中从另一个shell重新启动?

如何使用bash向进程(PID)发送信号,使其在运行的同一个shell中从另一个shell重新启动?,bash,Bash,我打开了一个终端,java服务器正在运行。我可以很容易地获得这个JAR进程的进程ID(PID)。我想从另一个终端发出信号,让这个进程在当前正在运行的同一个终端中停止并重新启动。这可以使用bash吗?是否可以向PID发送任何信号,使其停止并重新启动?您可以使用kill发送信号 kill -s <SIGNAL> <PID> kill-s 将信号发送到具有pid的进程 要停止并继续,可以使用SIGSTOP和SIGCONT,这基本上就像按Ctrl-Z键暂停终端上的程序一样 我

我打开了一个终端,java服务器正在运行。我可以很容易地获得这个JAR进程的进程ID(PID)。我想从另一个终端发出信号,让这个进程在当前正在运行的同一个终端中停止并重新启动。这可以使用bash吗?是否可以向PID发送任何信号,使其停止并重新启动?

您可以使用
kill
发送信号

kill -s <SIGNAL> <PID>
kill-s
将信号
发送到具有pid的进程

要停止并继续,可以使用
SIGSTOP
SIGCONT
,这基本上就像按Ctrl-Z键暂停终端上的程序一样

我想从另一个终端发出信号,让这个进程在当前正在运行的同一个终端中停止并重新启动。这可以使用bash吗

您可以通过
kill
命令向进程发送信号。您可能需要是一个特权用户,或者与正在发送信号的进程具有相同的UID

但请继续阅读

我是否可以向PID发送任何信号,使其停止并重新启动

如果您在terminate中表示“停止”,在run中表示“重新启动”,从一开始就好像是一个新进程,那么没有默认处理的信号。进程可以提供这样的行为来响应其选择的信号,但您不能从任意进程中调用它

另一方面,如果您想在暂时暂停操作的意义上“停止”,并在从该停止恢复的意义上“启动”,则有
SIGSTOP
SIGCONT
,默认处理应该足够了。但是,请注意,在这种意义上停止进程可能不会将其带出前台(如果它在前台),并且进程可能会阻止、忽略或自行处理这些信号