Pwner's Blog

能全力以赴不尽力而为

0%

有时候需要在多个节点配置相同的环境,可以采用 Docker 的方式批量部署,也可以直接手动创建对应的环境。

no subshells, no profile setup, no convoluted.

Nodejs 可以通过 n 模块来实现版本管理。

安装 n 模块

已经安装了 node,就可以用 npm 安装 n 模块

1
npm install -g n

安装 Node

安装最新版

1
n latest

安装官方稳定版

1
n stable

安装最新的 LTS 版本

1
n lts

安装指定版本

1
n 11.0.0

切换 Node 版本

查看当前已安装的 Node

1
n

并使用上下键选择版本,回车确认即可。

删除某个版本

1
n rm 7.6.2

查看 n 模块帮助信息

1
n --help

以开机自启动 Java 应用为例,记录一下三种开机自启动的方法。

✔️通过 systemctl 服务启动

将 java 应用的启动脚本托管给 systemctl 服务,通过 systemctl 的一系列命令配置应用的开机启动。

1)进入到系统的 /usr/lib/systemd/system 目录下

1
cd /usr/lib/systemd/system

2)添加.service 文件

1
vim test.service
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[Unit]

#服务描述

Description=test

#当前服务在某个服务启动之后启动

After=syslog.target network.target



[Service]

#systemctl进程运行的类型,有多种类型,默认为simple通过主进程启动,forking后台启动也就是systemctl主进程启动后会再生成一个子进程执行当前服务

Type=forking

#存放应用进程号的文件路径为绝对路径

PIDFile=/home/service/pid

#配置应用启动命令,应用的启动脚本路径必须为绝对路径

ExecStart=/home/service/startup.sh start

#配置应用的重启命令

ExecReload=/home/service/startup.sh restart

#配置应用的停止命令

ExecStop=/home/digital/service/startup.sh stop

#表示给应用分配独立的临时空间

PrivateTmp=true

#指定启动应用的用户

User=test

#指定用户的用户组

Group=test

#等待应用的启动时间,单位为秒,0表示禁用,如果在配置的时间内收到启动完成的信号,服务被认为执行失败然后自动退出

TimeoutStartSec=0

# 杀掉指定进程,none表示没有进程会被杀掉,只执行stop操作

KillMode=none


[Install]

WantedBy=multi-user.target

在配置文件中添加了 TimeoutStartSecKillMode 两个参数主要是为了防止 Java 应用程序通过 systemctl 启动成功后进程可能会被 kill 的问题,配置文件中加上 Restart=always 参数,应用会被不停地杀掉重启。配置文件中添加 TimeoutStartSec=0KillMode=none 后问题解决。

3)执行 reload 命令,使配置生效

1
sudo systemctl daemon-reload
  1. 将应用的执行命令设置为开机自动启动

①设置开机启动

1
sudo systemctl enabled test.service

②设置开机不启动

1
sudo systemctl disabled test.service

5)手动启动应用程序

1
sudo systemctl start test.service

如果启动异常可通过 systemctl status 查看应用启动的状态

1
sudo systemctl status test.service

✔️通过 service 服务启动

创建服务软连接

这里 jar 包的路径为绝对路径,应用名为 test.jar,创建的服务名为 test

1
ln -s /home/service/test.jar /etc/inint.d/test

手动测试服务是否添加成功

1
service test start

添加服务开机启动

1
chkconfig --add test

验证服务是否成功

1
2
3
4
5
#查看服务是否已经添加到了列表中
chkconfig --list

#重启服务
reboot

✔️配置 rc.local 文件

进入到 /etc/rc.d 目录

1
cd /etc/rc.d

修改文件可执行权限

默认情况下是没有该权限的

1
chmod +x rc.local

向 rc.local 文件中添加需要执行的命令

仅用于个人记录使用

更新活动脚本

1
bash manual-update.sh

一键运行

1
bash run-all.sh

运行指定脚本

1
2
bash jd.sh xxx      # 如果设置了随机延迟并且当时时间不在0-2、30-31、59分内,将随机延迟一定秒数
bash jd.sh xxx now # 无论是否设置了随机延迟,均立即运行

注:具体所有活动脚本列表可通过命令 bash jd.sh 查看,xxx 为脚本名。

获取互助码

1
2
3
4
5
#导入脚本
wget -P scripts https://gitee.com/SuperManito/JD-FreeFuck/raw/main/format_share_jd_code.js

#使用脚本
bash jd.sh format_share_jd_code now

导出互助码

1
bash export_sharecodes.sh