系统与硬件 分类中的文章

Frp 在 FreeBSD 上的启动与进程守护脚本

Frpc 或 Frps 在运行过程中有时候会因一些异常情况突然停止,这时搭建的服务就变的不可用,其实只要使用 FreeBSD 自带的 daemon  工具,即可做到当工作进程异常中止时自动重启工作进程,又可直接使用 service 命令进行管理。

FreeBSD手册中的信息有相关说明,daemon 支持 -r 来开启重启进程机制,-R 则设定多少秒后重启,默认是 1 秒。

通过 -p 指定工作进程的 pid 文件来告诉 rc.subr 具体的工作进程是哪个,-P 则是 daemon 本身的 pid。

#!/bin/sh
 
# PROVIDE: frps
# REQUIRE: LOGIN
# KEYWORD: shutdown
 
. /etc/rc.subr
 
name="frps"
rcvar=frps_enable
 
load_rc_config $name
 
: ${frps_enable="NO"}
: ${frps_user="nobody"}
: ${frps_flags=""}

daemon_pidfile="var/run/frps_daemon.pid" 
pidfile="/var/run/frps.pid"
command="/usr/local/opt/frp_0.21.0_freebsd_amd64/frps"
start_cmd="/usr/sbin/daemon -r -R 5 -u $frps_user -P $daemon_pidfile -p $pidfile -t $name $command $frps_flags"
start_postcmd="${name}_poststart"
stop_cmd="${name}_stop"

frps_poststart()
{
    echo "${name}_daemon running pid `cat ${daemon_pidfile}`."
    echo "${name} running pid `cat ${pidfile}`."
}

frps_stop()
{
    if [ -f "$daemon_pidfile" ]; then
        pid=`cat $daemon_pidfile`
        echo "Stopping pid ${pid}."
        kill $pid
    else
	    echo "${name} not running?"
    fi
}

 
run_rc_command "$1"

将以上脚本保存在 /usr/local/etc/rc.d/frps 文件中,给予 +x 权限,在 /etc/rc.conf 中添加 frps_enable="YES" 与 frps_flags 指定 frps 的运行参数即可做到开机自动启动 frps。

使用 service frps start|status|stop 可控制与检查 frps 的运行。

frpc 的话参考相应处进行修改即可。

FreeBSD daemon 命令的手册:https://www.freebsd.org/cgi/man.cgi?query=daemon

FreeBSD rc.d 脚本手册:https://www.freebsd.org/doc/zh_CN/articles/rc-scripting/article.html

FreeBSD 自带防火墙 ipfw 简单介绍

最近 FreeBSD 的 VPS 总是有些奇怪的链接,不得不了解一下 FreeBSD 的防火墙了。在网上找了多处的资料,发现资料都很老或者非常混乱,所以稍微整理了下做个记录分享,可以帮助大家快速上手吧。

FreeBSD 下首选的无疑是 ipfw 了,在官方的文档中有这么一段关于启用 ipfw 的说明:

IPFW 是基本的 FreeBSD 安装的一部分, 以单独的可加载内核模块的形式提供。 如果在 rc.conf 中加入 firewall_enable="YES" 语句, 就会自动地加载对应的内核模块。 除非您打算使用由它提供的 NAT 功能, 一般情况下并不需要把 IPFW 编进 FreeBSD 的内核。

阅读全部内容 >>

Ubuntu 内核引导错误和误删 /etc/grub.d/ 的解决办法

前段时间从 Ubuntu 13.04 升级到 13.10 后,发现 /boot 下多了个 3.11 的内核,但当前内核仍然使用的 3.5 的内核,于是想修改内核到使用 3.11 内核,但由于没注意到当前的 grub 已经是版本 2 了,使用 update-grub 却只更新了 menu.lst,而且我还过河拆桥的把 3.5 内核的相关文件都删了,重启后杯具了,无法引导内核,启动不了了。

然后各种搜索,发现当前系统居然是使用 grub.cfg 这个配置文件,menu.lst 实际上是老版本 grub1 的残留,而且 update-grub 也是老版本的 grub 工具。再经搜索在一篇 IBM 的文章中发现可以在 grub 界面按 E 进入引导配置文件临时修改,然后进入了系统。

进入系统后我一通折腾,把所有的 grub (1 和 2 版) 都卸载了,然后阴差阳错的胡闹把 /etc/grub.d/ 也删除了,重新安装后,发现怎么也无法生成正确的 grub.cfg 配置,生成的 grub.cfg 总是空的,原因就是因为没有了 /etc/grub.d/,寻思未果,各种重装也是无法解决,最后找到的办法是从 grub-common.deb 包中提取出来 grub.d 目录,然后复制到 /etc 中,再执行 update-grub 后 grub.cfg 终于正常了。

Win7 64 位旗舰版,Chrome 作为默认浏览器,html 文件关联图标为空白的解决办法

打开注册表编辑器

找到

HKEY_CLASSES_ROOT\ChromeHTML\ShellEx

将下面的 IconHandler 删除或者重命名,重启 explorer.exe 进程即可

解决卸载财富通控件开机后鼠标键盘不能动的问题

今天早上到公司打开电脑便下去买早餐去了,回来后发现键盘鼠标都不能动,就郁闷了。于是重启电脑,没有用,在没进入系统前,比如BIOS界面,系统选择界面,键盘都是可以用的,但是一进到系统后,在登录界面就全部无法操作了,重启电脑,重置BIOS设置都没有用,安全模式下也不能动。

后来还是朋友帮忙找了个信息,找了个USB鼠标插上后可以动,于是用软键盘登录了电脑,然后进入注册表编辑器,找到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}
在下面有一个 UpperFilters 项,它的值里面除了一个 kbdclass 外看是不是还有一个 tenpay... 什么的,每个一行,把这个 tenpay.. 什么的那行删除,然后重启电脑,一切都好了。

其实原因就是我昨天用数字把财富通控件从电脑里清除了,然后进 tenpay 的目录把程序删除了,但是注册表里的某些东西仍然残留着,然后今天开机就出现这个问题了。所以大家以后用什么软件把财富通清除后,不仅要删除文件,也要注意搜索注册表清除相关的项。