首页
关于
推荐
搜索定位器
视频解码
电源计划
软件资源
博客友链
搜索
1
开源软件:m3u8.sqlite文件转视频工具
985 阅读
2
欢迎来到我的世界
753 阅读
3
iKuai+Openwrt实现虚拟WAN分流,再也不用担心旁路网关崩了影响全局网络
689 阅读
4
AI:ChatGPT,假如你是Java架构师
662 阅读
5
开源软件:Windows网络驱动器管理工具
629 阅读
资料整理
软件发布
世新家装
萌宠乐园
登录
搜索
标签搜索
Docker
CentOS7
开源软件
Jenkins
MySQL
JVM
世新家装
ZStack
Java
Spring
Shell脚本
docker-compose
iKuai
ESXi
Bean
BeanDefinition
小太阳鹦鹉
欢迎
C#
WPF
卖萌小老头
累计撰写
51
篇文章
累计收到
8
条评论
首页
栏目
资料整理
软件发布
世新家装
萌宠乐园
页面
关于
推荐
搜索定位器
视频解码
电源计划
软件资源
博客友链
搜索到
51
篇与
卖萌小老头
的结果
2024-05-22
systemd服务自定义启动
systemd服务自定义启动Systemd 是 CentOS 7 中用于初始化系统的系统和服务管理器,可以让你将脚本设置为服务来管理。脚本内容:#!/bin/bash # Loading System Environment Variables source /etc/profile # 以日期时间为后缀,每次运行都生成新的日志文件 LOG_FILE="magic_api_$(date '+%Y%m%d_%H%M%S').log" # magic Jar package path1=/root # Log path logpath=/root/magic-log java -jar $path1/Magic_API.jar >> "$logpath/$LOG_FILE" 2>&1 # 获取后台运行的最后一个进程的 PID PID=$! echo "启动进程 PID: $PID" # 给 Java 应用一点时间启动 sleep 10 # 检查进程是否还在运行 if kill -0 $PID 2>/dev/null; then echo "启动成功" else echo "启动失败,查看日志文件 $logpath/$LOG_FILE" fi服务文件首先,需要创建一个 systemd 服务文件。通常这个文件应该放在 /etc/systemd/system/ 目录下。例如,可以创建一个名为 your-service.service 的文件:sudo vi /etc/systemd/system/your-service.service在该文件中添加如下内容:[Unit] Description=My Custom Startup Script [Service] Type=simple ExecStart=/path/to/your/script.sh Restart=on-abort [Install] WantedBy=multi-user.target创建systemd服务创建magicapi.service文件,内容如下:[Unit] Description=MagicAPI Service [Service] Type=simple ExecStart=/root/start_magicserver.sh Restart=on-abort [Install] WantedBy=multi-user.target使用systemd服务在正式自己创建的服务器之前,需要执行命令将配置文件加载到systemd中。systemctl daemon-reload然后自己编写的服务就可以像系统其他的服务一样使用start、stop、status、restart等服务。systemctl start magicapi.service systemctl stop magicapi.service systemctl status magicapi.service systemctl restart magicapi.service也可以通过enable或disable将服务开机启动或开机禁用。systemctl enable magicapi.service systemctl disable magicapi.service关键内容解释[Unit] 部分[Unit]: 这一行标记着单元配置文件的开始。在 systemd 中,单元(unit)是对系统资源的一个抽象,用于管理服务、挂载点、设备等。Description=Start MagicAPI Service: 这行提供了对这个服务单元的简短描述。这里描述的是 "Start MagicAPI Service",这说明该服务的目的是启动 MagicAPI 服务。这个描述会在系统管理工具中显示,帮助用户识别服务的功能。[Service] 部分[Service]: 这一行标记着服务类型的配置部分的开始。这里定义的是与服务特定行为相关的配置。Type=simple: 这行指定了服务的启动类型为 simple。这是 systemd 服务类型的默认值,意味着 systemd 认为该服务将立即启动并且一直运行。ExecStart 指定的程序被认为是服务的主进程,如果此程序退出,服务被认为已停止。ExecStart=/root/start_magicserver.sh: 这行定义了启动服务时执行的命令或脚本。此例中,当服务启动时,系统将运行位于 /root/start_magicserver.sh 的脚本。这个脚本应该包含启动 MagicAPI 服务所需的所有命令。Restart=on-abort: 这行指定了服务重启的策略。on-abort 表示只有在服务因异常终止(比如进程被信号杀死)时才会重新启动。这有助于确保在非正常终止的情况下服务能自动尝试恢复。[Install] 部分[Install]: 这一行标记着与服务安装相关的指令的开始。这部分主要定义了当通过 systemctl enable 命令使服务自启动时应该怎么做。WantedBy=multi-user.target: 这行指定了服务安装时应该被哪个目标(target)所需要。multi-user.target 是一个系统运行级别,类似于传统的运行级别 3,意味着在多用户文本模式下运行。在这里,WantedBy=multi-user.target 意味着当系统达到多用户目标状态时,这个服务应该被启动。总的来说,这个 systemd 服务单元文件配置了一个名为 "MagicAPI" 的服务,这个服务在系统启动到多用户模式时自动启动,并且在由于异常原因导致服务终止时自动重启。它通过运行一个位于 /root/start_magicserver.sh 的脚本来启动 MagicAPI 服务。前端程序示例Vue前端编写的程序如果希望通过systemd服务来管理的话,还需要指定下前端程序的工作空间,否则访问的时候会出现“Cannot GET /”启动Vue的shell脚本编写如下:# cat /root/vue_operation.sh #!/bin/bash # 前端程序启动脚本 path="/opt/software/Vue" /opt/software/node-v14.17.4-linux-x64/bin/node $path/server.js编写systemd服务# cat /etc/systemd/system/vue.service [Unit] Description=Vue Frontend Server After=network.target [Service] Type=simple WorkingDirectory=/opt/software/Vue/ ExecStart=/bin/bash /root/vue_operation.sh Restart=on-abort [Install] WantedBy=multi-user.target关键内容解释[Unit] 部分[Unit] Description=Vue Frontend Server After=network.targetDescription=Vue Frontend Server:这一行定义了服务的描述,说明了这个服务是用来运行 Vue 前端服务器的。After=network.target:这一行指定服务应该在网络服务 (network.target) 启动后才启动。这确保了网络已经准备就绪,以便服务能够正常工作。[Service] 部分[Service] Type=simple WorkingDirectory=/opt/software/Vue/ ExecStart=/bin/bash /root/vue_operation.sh Restart=on-abortType=simple:指定服务以简单的方式运行。这意味着 systemd 会认为启动服务后,该服务的主进程直接由 ExecStart 指定的命令启动,并且不会在后台生成其他额外的子进程。WorkingDirectory=/opt/software/Vue/:指定服务的工作目录是 /opt/software/Vue/。这是服务启动后的工作路径,也就是 vue_operation.sh 脚本将在这个目录下执行。ExecStart=/bin/bash /root/vue_operation.sh:这一行定义了服务启动时要执行的命令。具体来说,它调用了 /bin/bash 解释器来执行 /root/vue_operation.sh 脚本。这意味着在启动服务时,将会执行这个脚本来启动 Vue 前端服务器。Restart=on-abort:指定服务在异常终止时(非正常退出)应该自动重启。on-abort 选项告诉 systemd,在服务由于异常情况(如程序崩溃或收到不可恢复的信号)而终止时,应该自动重新启动该服务,以确保服务的可用性。[Install] 部分[Install] WantedBy=multi-user.targetWantedBy=multi-user.target:这一行指定了当系统运行级别达到 multi-user.target 时,应该启用这个服务。multi-user.target 是系统启动时的一个目标,表示系统已经进入了多用户模式,可以运行多个用户服务。@alexremo
2024年05月22日
123 阅读
0 评论
0 点赞
iKuai+Openwrt实现虚拟WAN分流,再也不用担心旁路网关崩了影响全局网络
先上一张网络结构图。实现此架构需要具备如下要求:物理机最少两个物理网口懂网络知识,否则可能看不懂哦实现此架构两种方案:使用类似J1900主机,直接安装iKuai(64位哦,32位不支持虚拟机)使用PVE或ESXi安装iKuai和Openwrt方案一:iKuai虚拟机iKuai虚拟机方案,因为vnet是没有实际连接的虚拟端口。所以是红色的WAN2使用vnet作为关联,那么创建Openwrt虚拟机的时候也能选择到WAN2。iKuai就能和Openwrt建立关系。创建虚拟机的时候一定要注意网卡,Openwrt内的网卡绑定和调整我就不详细讲了。方案二:虚拟化平台虚拟机此方案的实现和iKuai的虚拟机类似,只是WAN2不在依赖vnet接口,而是通过虚拟化平台分配的iKuai和Openwrt公用的一个端口,作为Openwrt的lan和iKuai的WAN2。具体操作不详细赘述,以ESXi的网络截图说明:ESXi上允许创建不绑定上行链路的虚拟交换机,同时基于虚拟交换机就可以创建端口组。创建好端口组,就可以连接iKuai和Openwrt,完成和iKuai虚拟机一样的方式搭建WAN2。不同的是端口检查iKuai的WAN2连接了Openwrt,所以端口不是红色的。分流规则iKuai的规则优先级:静态路由>域名分流>端口分流>协议分流>多线负载>默认网关我目前使用比较多的是协议分流(直接指定哪些协议走哪个端口出去)、域名分流(指定域名从指定端口出去)优缺点优点:当WAN2打包服务停机或者网络服务异常时,不影响不分流的访问。缺点:相比旁路网关,略微复杂。多年前已经在iKuai论坛发布过此方案了,但是还想在自己的笔记中留下自己的方案。感谢浏览!!!* 特别申明只做技术交流,不做非法生意。如有非法活动和本人无关,不要因教程扯上我。
2024年05月07日
689 阅读
1 评论
0 点赞
iKuai双WAN怎么使用Panabit做透明网桥呢?
前置背景主路由是iKuai,之前只有一条宽带,然后直接直接把WAN和LAN接口挂到Panabit做透明网桥就好了。最近增加了一条宽带,双WAN分流之后流只桥接一个WAN流量就不准确了。然后再官方论坛咨询了,回复是增加线路管理,但是这样我就得修改我本身的网络结构。我需要的状态是不修改我原来的网络结构,增加透明网桥监控流量就好了,所以有了一下方案。官方论坛回复,但是并不是我预期的效果。因为分流操作是在iKuai做的,按照这个操作我得调整我的网络结构。iKuai网络变动单WAN时iKuai网络接口WAN1 宽带 LAN1 局域网双WAN时iKuai网络接口WAN1 宽带1WAN3 宽带2LAN1 局域网iKuai网卡整改WAN1 宽带1WAN3 宽带2WAN4 WAN口镜像(WAN1 + WAN3)LAN1 局域网LAN2 LAN口进项(LAN1)端口镜像方案进流量LAN2 镜像 WAN1 + WAN3,方向是进。LAN2统计到的是整个网络的下行。WAN4 镜像 LAN1,方向是进。WAN4统计到的是局域网的上行。出流量LAN2 镜像 LAN1,方向是出。LAN2统计到的是局域网的下行。WAN4 镜像 WAN1 + WAN3,方向是出。WAN4统计到的是整个网络的上行。* 各有优缺点,根据自己的需求调整。如果iKuai本身下行也需要统计到,选进流量方案。如果iKuai本身的上行流量也需要统计到,选出流量方案。为什么不做双向流量的端口镜像?原因是:如果做成双向的话,Panabit看到的流量将是经过这个端口的上下之和,这就有问题了。原因在于iKuai镜像端口的流量选择上下双向之后,它把流量合并到一起了。这个问题倒是可以给iKuai反馈下。如果iKuai解决了上下双向分开。那么可以使用这个方案。覆盖上边的两个方案的数据。Panabit网卡整改Panabit不直接使用WAN1和WAN3,LAN1。而是使用WAN4和LAN2。这样就能做1对1的透明网桥。iKuai端口镜像 + Panabit透明网桥经过调整后,Panabit透明网桥成功,数据流量统计准确。修改完成
2024年04月30日
269 阅读
0 评论
0 点赞
ZStack4.8.0我升级了
不算最早,但是也很早了。zstack还开放免费学习和考证的时候就开始用了,3.x版本。历时3年多我终于换机器升级了。ZStack4.8.0用起来更赞了先来一张主页图吧,增加了主题配色(虽然这个不是主业,但是也挺好,可以换换配色)机器内存不大,CPU也一般般,但是对我而言够用了。之前是vmware虚拟一台,然后克隆。启太多之后,工作站也卡呀。想了下,还是独立出来,就发现了ZStack。后来开始玩软路由了,买了个机器J1900,无法安装esxi。就ikuai + ikuai的kvm虚拟机,安装了op。再后来又增加了一台机器,esxi内allin。但是ZStack我还是再用创建好镜像之后,需要一台Centos,启动贼快。导出镜像之前也可以把最常用的直接安装好,然后再导出镜像。这样启动起来的机器能节省最少个把小时。创建云主机的步骤和界面竟然有点像阿里云了,对没错和阿里云有点关系。最后再看看监控大屏吧,很拉风。看着描述的花里胡哨的,你懂不懂啊,不要怀疑,我是有证的。确实描述的这些可能都不是核心,只是想记录下我升级4之后的心情。对于希望使用或者了解ZStack3( ZStack官网 已经不提供下载了)、ZStack4的可以去 官网 (有更详细的教程)。也可以看看我之前的一篇文章。对于我的用途而言就是学习或者玩(或者说测试的时候)随时启动一台机器,随时释放。搭建属于自己的云主机环境,过程、使用、都很赞。现在公司的测试机也是ZStack,不过版本是3.x版本。当你自己玩明白,能管理,出问题能解决。那么自己公司又正好需要的时候,就可以在公司玩起来了,服务器性能刚刚的。
2024年04月11日
144 阅读
0 评论
0 点赞
新成员到来(2024.05.23更新)
2024年4月3日增加了一位新成员。看起来毛茸茸的,很懵但是很乖。2024年4月7日我上班了。回家发现他有点怕人。2024年4月9日早上出门准备摸摸它,它竟然咬我。2024年4月11日今天太阳不错,晒晒太阳。很开心!2024年4月12日有了新玩具和架子,开始上架玩了。睡觉还开发了新姿势,看第一眼有点吓人。第一次爬那么高站着,估计心想:“快快快看我,厉不厉害”。2024年4月15日今天挺暖和,自己想出来,就趴身上来了。晒晒太阳今天开始自己学吃东西了,很不错。2024年4月22日之前不吃奶不会吃饭的时候,看着他就没吃过,所以就偷偷观察下。这眼神,是在告诉,看什么看!2024年4月23日晚上回家发现保暖设备的电源断了,然后可能有点冷吧,然后就钻我衣服里了。2024年4月24日我长大了,很聪明,我也要学习。工作中,笼子里闹腾,就让它出来了,就一直站着,看着我。2024年4月29日家里虽然不大,但是也能飞。飞到窗户那停下了,对外面充满了向往吧。但是我没剪羽,准备了放飞绳,51的时候可以带着。2024年5月6日第一次给吃西瓜,可能因为陌生,完全不吃,表现出抗拒。给它弄了一点占了下舌头之后,你再看看张着的大嘴。哈哈2024年5月7日我就喜欢居高临下的感觉,看我帅不帅。2024年5月23日没有配文,直接上图
2024年04月09日
118 阅读
0 评论
2 点赞
2024-04-09
七牛云kodo对象存储全量下载备份
官网下载qshell工具https://developer.qiniu.com/kodo/tools/qshell操作命令记录:登录:qshell account [ak:账号的AK] [sk:账号的SK] [name:认证姓名,比如:张三]获取存储桶列表:qshell buckets,假设存储桶为zhangsan2020下载存储桶全部文件:qshell qdownload2 --bucket zhangsan2020------over------
2024年04月09日
147 阅读
0 评论
0 点赞
1
2
3
...
9