node-red使用
Symbols count in article: 3k Reading time ≈ 3 mins.
1. 通过服务启动
1. 安装node-red
1 | npm install -g --unsafe-perm node-red |
2. node-red.service
1 | [Unit] |
1 | cp node-red.service /etc/systemd/system |
3. 设置服务
重新加载系统守护进程:sudo systemctl daemon-reload
启动 node-red 服务: 运行以下命令启动服务:sudo systemctl start node-red
设置开机自启: 如果你希望在系统启动时自动启动 node-red 服务,可以使用以下命令:sudo systemctl enable node-red
查看服务状态: 你可以通过以下命令检查服务的状态:sudo systemctl status node-red
2. Other Linux, OSX 其他 Linux、OSX
下面的指南列出了我们认为对大多数用户来说最直接的方法。对于 Windows,PM2 不会作为服务自动运行 - 您可能更喜欢下面的 NSSM 选项。
0. 使用 PM2
PM2 是 Node.js 的流程管理器。它使在启动时运行应用程序变得容易,并确保它们在必要时重新启动。
1. 安装 PM2
1 | sudo npm install -g pm2 |
注意 :如果在 Linux 或 OS X 上以非 root 用户身份运行,则需要 sudo
。如果在 Windows 上运行,则需要以管理员身份在命令 shell 中运行,而不使用 sudo
命令。
如果在 Windows 上运行,您还应该确保 tail.exe
在您的路径上,如此处所述。
2. 确定 node-red
命令的确切位置
如果您已经完成了 node-red 的全局安装,那么在 Linux/OS X 上,node-red
命令可能是:/usr/bin/node-red
或 /usr/local/bin/node-red
。命令 which node-red
可用于确认位置。
如果您已完成本地安装,它将是 node_modules/node-red/bin/node-red
相对于您运行 npm install
的位置。
3. PM2 运行 Node-RED
以下命令指示 PM2 运行 Node-RED,假设 /usr/bin/node-red
作为 node-red
命令的位置。
The --
argument must appear before any arguments you want to pass to node-red.--
参数必须出现在要传递给 node-red 的任何参数之前。
1 | pm2 start /usr/bin/node-red -- -v |
_注意_:如果您在 Raspberry Pi 或 BeagleBone 等设备上运行 black,则必须传递一个额外的参数:
1 | pm2 start /usr/bin/node-red --node-args="--max-old-space-size=128" -- -v |
_注意_:如果要以 root 用户身份运行,则必须使用 ‘–userDir’ 选项来指定 Node-RED 应存储数据的位置。
这将在后台启动 Node-RED。您可以使用以下命令查看有关进程的信息并访问日志输出:
1 | pm2 info node-red |
有关在 PM2 下管理进程的更多信息,请点击此处。
4. PM2 在启动时运行
PM2 能够生成和配置适合其运行平台的启动脚本。
运行这些命令并按照它提供的说明进行操作:
1 | pm2 save |
对于使用 systemd 的较新 Linux 系统,请使用
1 | pm2 startup systemd |
_临时说明:_GitHub 上的 PM2 上有一个未解决的问题,其中突出了最近引入的问题。 Linux 用户需要手动编辑生成的 /etc/init.d/pm2-init.sh 文件并将 指向正确的目录,如下所示:
1 | # export PM2_HOME="/root/.pm2" |
5. Reboot 5. 重新启动
最后,重新启动并检查一切按预期启动。
[PM2] Init System found: systemd Platform systemd Template
1 | [Unit] |
文件位置:/etc/systemd/system/pm2-username.service
systemctl enable pm2-username
会创建symlink /etc/systemd/system/multi-user.target.wants/pm2-username.service
→ /etc/systemd/system/pm2-username
.
通过以下方式在重启时冻结进程列表:
1 | pm2 save |
移除初始化脚本:
1 | pm2 unstartup systemd |
esp8266
Symbols count in article: 0 Reading time ≈ 1 mins.
ubuntu格式化磁盘
Symbols count in article: 1.1k Reading time ≈ 1 mins.
bilibili直播串流
Symbols count in article: 185 Reading time ≈ 1 mins.
1 | ffmpeg -re -stream_loop -1 -i "test.mp4" -c copy -f flv "${rtmp}" |
1 | ffmpeg -re -stream_loop -1 -i "test.mp4" -c copy -f flv "rtmp://xxx" |
rtmp://xxx
在磁盘上挂在home
Symbols count in article: 1.2k Reading time ≈ 1 mins.
将home挂载到新的磁盘上
在wsl下定制并编译openwrt
Symbols count in article: 1.1k Reading time ≈ 1 mins.
在WSL(Windows Subsystem for Linux)下定制并编译OpenWRT的步骤如下:
1. 安装WSL和所需工具
首先,确保你已经安装了WSL和一个Linux发行版(例如Ubuntu)。
安装WSL和Ubuntu
1 | wsl --install -d Ubuntu |
更新系统并安装依赖
在WSL的Ubuntu环境中,更新系统并安装编译OpenWRT所需的工具:
1 | sudo apt update && sudo apt upgrade |
2. 下载OpenWRT源码
在你的工作目录中,克隆OpenWRT的源码:
1 | git clone https://git.openwrt.org/openwrt/openwrt.git |
如果你想要特定的版本,可以切换到相应的分支或tag。例如切换到22.03分支:
1 | git checkout v22.03.0 |
3. 配置OpenWRT
在开始编译之前,你需要配置OpenWRT。你可以使用OpenWRT自带的配置界面来选择目标平台、包、内核模块等。
更新和安装feeds
1 | ./scripts/feeds update -a |
使用make menuconfig
配置
运行以下命令进入OpenWRT的配置界面:
1 | make menuconfig |
- 在这里,你可以选择你的目标平台(Target System)和设备型号(Target Profile)。
- 配置所需的软件包和内核模块。
4. 开始编译
配置完成后,可以开始编译。根据你的系统资源,编译可能需要一些时间。
编译整个固件
1 | make -j$(nproc) |
-j$(nproc)
表示使用你系统中可用的所有CPU核心来加速编译过程。
5. 解决潜在的WSL编译问题
在WSL环境中编译大型项目可能会遇到一些限制,如文件系统性能较慢或内存不足。为了应对这些问题,可以考虑:
增加WSL的内存限制:可以通过编辑
%userprofile%/.wslconfig
文件来增加WSL的内存和CPU限制。1
2
3[wsl2]
memory=8GB # 设置内存上限
processors=4 # 设置CPU核心数量避免使用NTFS:WSL在NTFS文件系统上的编译性能较差。考虑将源码存放在WSL的文件系统(例如
/home/username
)下。
6. 编译输出
编译完成后,固件文件会输出在bin/targets/
目录下。你可以将生成的固件刷入到你的设备中。
7. 定制和调试
根据需要,你可以继续调整配置文件、添加或移除软件包、修改源码,并重新编译。
开发环境设置
node/npm, brew, conda 环境设置
bark 服务
Symbols count in article: 645 Reading time ≈ 1 mins.
Bark is an iOS App which allows you to push customed notifications to your iPhone.
使用wsl替代ubuntu
Symbols count in article: 1.2k Reading time ≈ 1 mins.
从接触Linux开始到现在,使用Linux也接近十年了,期间也尝试过各种Linux发行版。目前主要开发环境使用的时MacOS,使用起来还算是非常顺手。但是在有些时候也不太方便,比如Linux Kernel的编译、有些工具链的使用、一些Linux下工具使用,等还是使用Linux环境比较方便。Linux凭借其开源特点,各种发行版百花齐放,主流服务器大多都是使用Linux系统,比如Debain、Ubuntu、OpenSUSE等等接近十来种。Desktop发行版也有很多,常用的有Debain、Ubuntu、Deepin等等也是一堆,相关的大大小小桌面环境也有好多种,如GNOME、KDE、Xfce、LXDE等等。