编写termux随机启动脚本

nano $PREFIX/etc/termux-login.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 注释说明此脚本在执行shell之前由/data/data/com.termux/files/usr/bin/login引入并执行

# 启动OpenSSH服务器
# 使得可以通过SSH协议远程连接到Termux环境
sshd

# 启动alist server和aria2c下载工具
# 然后将这两个命令的输出和错误信息丢弃,使其在后台安静运行
# /dev/null是空设备, 2>&1是把标准错误定向到标准输出, 第一个>是把2>&1定向到/dev/null, &让其在后台运行
nohup alist server > /dev/null 2>&1 &
nohup aria2c --conf - path="/data/data/com.termux/files/home/.config/aria2/aria2.conf" > /dev/null 2>&1 &

# 启动Termux的PulseAudio音频服务器
# --start启动PulseAudio服务器
# --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1"加载TCP协议模块
# 并配置该模块允许来自本地环回地址127.0.0.1的匿名连接
# --exit-idle-time=-1使服务器永远不会因空闲而退出
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1

# 使用PulseAudio的命令行管理工具pacmd再次加载TCP协议模块
# 并设置相同的访问控制参数,确保配置生效
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

# --------------------------------
# 注释掉的这行命令原本是启动位于/data/data/com.termux/files/home/storage/shared/htdocs/reader - server - 3.2.10/bin/startup.sh的脚本
# 并将其输出和错误信息丢弃,使其在后台安静运行
#nohup bash /data/data/com.termux/files/home/storage/shared/htdocs/reader-server-3.2.10/bin/startup.sh > /dev/null 2>&1 &

# 以下几行使用nohup命令在后台运行程序,并将标准输出和标准错误重定向到/dev/null
# 注释掉的这行命令原本是启动filebrowser,监听在0.0.0.0:8088端口,根目录设置为/data/data/com.termux/files
# 并将其输出和错误信息丢弃,使其在后台安静运行
#nohup filebrowser -a 0.0.0.0 -p 8088 -r /data/data/com.termux/files > /dev/null 2>&1 &

# 启动自定义的dokuwiki.sh脚本
# 并将其输出和错误信息丢弃,使其在后台安静运行
nohup./dokuwiki.sh > /dev/null 2>&1 &

# 启动自定义的typecho.sh脚本
# 并将其输出和错误信息丢弃,使其在后台安静运行
nohup./typecho.sh > /dev/null 2>&1 &

———-更新————–

以上写得太啰嗦,下面简洁化并增加检查功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
##
## This script is sourced by /data/data/com.termux/files/usr/bin/login before executing shell.
##
# 1,检查ssh是否在运行
if ! pgrep -f "sshd" > /dev/null; then
sshd
echo "sshd has been started."
else
echo "sshd is already running."
fi

# 2,检查alist server是否在运行
if ! pgrep -f "alist server" > /dev/null; then
nohup alist server > /dev/null 2>&1 &
echo "alist server has been started."
fi

# 3,检查aria2c是否在运行
if ! pgrep -f "aria2c --conf-path=/data/data/com.termux/files/home/.config/aria2/aria2.conf" > /dev/null; then
nohup aria2c --conf-path="/data/data/com.termux/files/home/.config/aria2/aria2.conf" > /dev/null 2>&1 &
echo "aria2c has been started."
fi

# 4,检查pulseaudio是否在运行
if pgrep -x "pulseaudio" > /dev/null; then
echo "pulseaudio is already running."
else
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
echo "pulseaudio has been started."
fi

# 5,检查dokuwiki是否在运行
#if ! pgrep -f "php -f doku.php -S 0.0.0.0:8087 -t storage/shared/htdocs/dokuwiki" > /dev/null; then
# nohup php -f doku.php -S 0.0.0.0:8087 -t storage/shared/htdocs/dokuwiki > /dev/null 2>&1 &
# echo "dokuwiki has been started."
#fi

proot-distro login debian --shared-tmp -- sh -c 'php8.2 -f doku.php -S 0.0.0.0:8087 -t /data/data/com.termux/files/home/storage/shared/htdocs/dokuwiki' > /dev/null 2>&1 &