openwrt 的安装与配置
openWrt 是专门为嵌入式设备设计的 Linux 系统,常用来作为软路由系统使用。LEDE 和 openWrt 已经合并到一起。
最近研究软路由,所以先使用 VMware 虚拟机安装测试 openWrt,由于 VMware 只能识别 vmdk 格式的虚拟磁盘镜像,而官网下载的是 img 镜像,所以需要进行格式转换。
openWrt 是专门为嵌入式设备设计的 Linux 系统,常用来作为软路由系统使用。LEDE 和 openWrt 已经合并到一起。
最近研究软路由,所以先使用 VMware 虚拟机安装测试 openWrt,由于 VMware 只能识别 vmdk 格式的虚拟磁盘镜像,而官网下载的是 img 镜像,所以需要进行格式转换。
wsl 默认不支持 systemd,执行 systemd 命令会返回错误提示:
# hostnamectl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down
可以安装第三方的工具 genie 来激活 systemd。
在升级到 wsl 2 后发现一些网络问题和之前的 wsl 不一样了,主要是 DNS 解析和 wsl 和 Windows 网络互访问题,这里介绍如何处理。
wsl 2 使用的 DNS 解析服务器设置在文件:/etc/resolv.conf
内设置,这是一个 link 文件,真正的文件路径是:/run/resolvconf/resolv.conf
,这个文件是每次 wsl 启动时自动生成的,内容如下:
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.24.144.1
echo 是常用的终端命令,常用来输出字符串。配合命令的 option 选项可以实现多种输出方式。
echo [option(s)] [string(s)]
$ echo i have a dream
i have a dream
今天在使用 journalctl
查看 nginx 日志时看到在每次启动服务后会出现一条错误信息:
$ journalctl -u nginx
...
nginx.service: Failed to parse PID from file /opt/nginx/logs/nginx.pid: Invalid argument
...
查找了下原因,可能是 nginx 在启动时创建 nginx.pid 文件前 systemd 就在请求这个文件,所以出错了。
解决办法就是题前手动创建 systemd 需要的文件:
mkdir /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload
以上处理就可以解决问题。
参考链接:
https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864