FreeBSD 8 执行/etc/rc时屏蔽 Ctrl-C


系统启动后,加载完内核,便会执行 /etc/rc,这时候是能够被 Ctrl - C打断的,而有些系统是不能容忍中断的。

因此需要屏蔽 Ctrl-C 按键。


找到  /usr/src/sbin/init/init.c 文件,这是 init 进程的源文件,/etc/rc 是被这个进程进行调用执行的。

在 init.c 中,会调用 run_script 函数,这个函数负责执行一些特定的脚本,信号的屏蔽需要在这里进行修改。


如:

sigemptyset(&sa.sa_mask);

sa.sa_flags=0;

sa.sa_handler=SIG_IGN;

if (strncmp(script,"/etc/rc",7) == 0)

{

    sigaction(SIGINT,&sa,(struct sigaction *)0);

    warning("%s on %s SIGINT ignore.",shell,script);

}

sigaction(SIGTSTP....);

sigaction(SIGHUP....);


重新编译,替换 init 程序即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值