Termux自动启动进程(halo2博客为例)
这里使用的是 termux-service 服务,详细可以查看官网说明书: https://wiki.termux.com/wiki/Termux-services
研究目的是,当启动 termux 时,可以自行开启 proot 容器中的服务,形似 systemctl enable
部分代码来自 AI~
1. 安装termux-service
安装:
pkg install termux-services验证服务是否在运行:
ps -ef | grep runsvdir | grep -v grep能看到类似 runsvdir -P .../var/service 才算正常。
2. mariadb启动脚本
创建目录与日志目录
mkdir -p $PREFIX/var/service/mariadb-proot/log
ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/mariadb-proot/log/run写 run 脚本
编辑:
nano $PREFIX/var/service/mariadb-proot/run内容:
#!/data/data/com.termux/files/usr/bin/sh
exec 2>&1
exec proot-distro login halo2 -- bash -lc '
set -e
# MariaDB 运行时目录(很多环境没有,需要自己建)
mkdir -p /run/mysqld
chown -R mysql:mysql /run/mysqld || true
# 启动脚本
exec mariadbd \
--user=mysql \
--datadir=/var/lib/mysql \
--bind-address=127.0.0.1 \
--port=3306
'赋可执行权限:
chmod +x $PREFIX/var/service/mariadb-proot/run2. halo2启动脚本
跟 mariadb 启动脚本步骤基本一致,其他启动脚本照葫芦画瓢就行
创建目录与日志目录
mkdir -p $PREFIX/var/service/halo2-proot/log
ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/halo2-proot/log/run写 run 脚本
编辑:
nano $PREFIX/var/service/halo2-proot/run内容:
#!/data/data/com.termux/files/usr/bin/sh
exec 2>&1
exec proot-distro login halo2 -- bash -lc '
set -e
cd /root/halo2
exec java -Dfile.encoding=UTF-8 \
-jar halo-2.23.0-beta.1.jar \
--spring.config.additional-location=optional:file:./.halo2/
'赋可执行权限:
chmod +x $PREFIX/var/service/halo2-proot/run3. 服务脚本启用/启动/停止
termux-services 判定“是否启用”就是看 $PREFIX/var/service/<service>/down 是否存在。
启用(打开termux执行)
sv-enable mariadb-proot
sv-enable halo2-proot启动
sv up mariadb-proot
sv up halo2-proot看状态
sv status mariadb-proot
sv status halo2-proot停止/禁用
sv down halo2-proot
sv-disable halo2-proot查看日志
日志在:
$PREFIX/var/log/sv/mariadb-proot/current
$PREFIX/var/log/sv/halo2-proot/current
查看:
tail -n 200 $PREFIX/var/log/sv/mariadb-proot/current
tail -n 200 $PREFIX/var/log/sv/halo2-proot/currentTermux自动启动进程(halo2博客为例)
https://blog.yamds.cafe/archives/termux-start-script