这是程序的要点:
while(true)
{
//bunch of codes that gets data from port ,
//if there is no data it waits here .
}
我用的是linux,有没有内置的支持像Ctrl+C这样的按键。我可以使用signal(SIGINT, signal_callback_handler);捕捉到这一点,但是Ctrl+C有一些问题,因为它会给出错误。
我想在按键时跳出这个循环,这是可能的吗?如果是,如何操作。
我有一个脚本运行在我的linux服务器的背景上,我希望捕捉到信号,比如重新启动或任何可能杀死这个脚本的东西,而不是在实际退出之前保存任何重要信息。
我想我需要抓住的大部分是,SIGINT,SIGTERM,SIGHUP,SIGKILL。
如何捕捉这些信号并让它执行退出函数,否则继续执行它正在做的任何事情?
伪perl代码:
#!/usr/bin/perl
use stricts;
use warnings;
while (true)
{
#my happy code is running
#my happy code will sleep for a few until it
我的问题是,我们连接到服务器并运行脚本。这将生成2个PID,一个用于sshd,一个用于bash。偶尔,连接旅行和我们在脚本中创建的东西仍然存在。
我们试图在远程端进行清理,这样,如果sshd连接死了,它就会自动捕获信号并删除我们不想要的内容。我们在服务器上捕捉杀死信号等,但我们似乎无法捕捉到ssh下降。
当sshd连接丢失时,继续下去是没有意义的,因为我们需要连接才能进行处理。
我们尝试运行两个脚本,一个连接到服务器,另一个接着执行任务。
发射器
#!/bin/bash
#confirm arguments sent to server [args]
echo "You provide