首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

【原创】解决NasCab掉进程,NasCab进程维护

编程知识
2024年09月19日 20:52

最近对象吐槽家里服务器又连不上,看不了考研视频了。
我掏出手机一试,确实连不上。家里的服务器是Win11平台,用NasCab管理的视频文件,然后通过frpc做的内网穿透。
我们在外面的图书馆,连不上无非是三种情况:服务器关机了、NasCab内网穿透插件掉了、NasCab进程掉了。
远程登录服务器,发现是NasCab进程掉了。。。点开NasCab,1分钟后对象又可以愉快的看考研视频了。
我想了想,决定写个脚本处理一下这事,因为我也时不时遇到NasCab掉进程的情况,我之前都是忽略了,但现在意识到这会影响体验。
思路:写一个维护进程的脚本,循环扫描nascab进程,检测不到就开启NasCab。
要求:该脚本不能受NasCab影响,同时该脚本也不能影响NasCab,那就需要另一个终端开启nascab,于是是bat->cmd->powershell->NasCab,这样只有powershell窗口会被影响,关掉cmd不会影响NasCab。
实现代码为:powershell -command "& {Start-Process %executable%}",其中executable为要执行的程序,就是nascab。
注意nascab的路径要加入path,路径为:C:\Users\hpl\AppData\Local\Programs\nascab\NasCab.exe,其中hpl替换为自己的用户名。
然后让这个脚本开机自启动就可以了。实现方法可用创建任务计划,也可直接拖入启动文件夹。

完整代码如下(全网首发,转载请保留出处):
取名Gaia是因为我爱玩零之曙光,里面的Gaia功能强大,hhh

点击查看代码
@echo off
rem 关闭echo命令显示

chcp 65001
rem 强制开启UTF-8,以支持中文显示

rem 为本脚本获取管理员权限
ver | findstr "10\.[0-9]\.[0-9]*" >nul && goto powershellAdmin

:mshtaAdmin
rem 原理是利用mshta运行vbscript脚本给bat文件提权
rem 这里使用了前后带引号的%~dpnx0来表示当前脚本,比原版的短文件名%~s0更可靠
rem 这里使用了两次Net session,第二次是检测是否提权成功,如果提权失败则跳转到failed标签
rem 这有效避免了提权失败之后bat文件继续执行的问题
Net session >nul 2>&1 || mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~dpnx0""","","runas",1)(window.close)&&exit
Net session >nul 2>&1 || goto failed
goto Admin

:powershellAdmin
rem 原理是利用powershell给bat文件提权
rem 这里使用了两次Net session,第二次是检测是否提权成功,如果提权失败则跳转到failed标签
rem 这有效避免了提权失败之后bat文件继续执行的问题
Net session >nul 2>&1 || powershell start-process \"%0\" -verb runas && exit
Net session >nul 2>&1 || goto failed
goto Admin

:failed
echo 提权失败,可能是杀毒软件拦截了提权操作,或者您没有同意UAC提权申请。
echo 建议您右键点击此脚本,选择“以管理员身份运行”。
echo 按任意键退出。
pause >nul
exit

:Admin
echo 本脚本处理所在路径:%0
echo 已获取管理员权限!
ping 127.0.0.1 -n 1 > nul
echo 如果此窗口标题处显示“管理员”字样,那就说明提权成功了。

echo 尝试将工作目录转移到软件目录...
cd /d %~dp0
rem 切换软件工作目录到软件所在文件夹
ping 127.0.0.1 -n 1 > nul
echo 目录转移成功!

rem 在后台运行本脚本
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin

rem 在这里设置目标程序
:: 程序路径需加入Path: C:\Users\hpl\AppData\Local\Programs\nascab\NasCab.exe
set executable=nascab
set /a counter=0
set TITLE=GaiaNasCab-background-admin[1.4]

rem 设置标题
title %TITLE%

echo -------------------------------------------------------------------------------- > %TITLE%.log
echo [%DATE%%TIME:~0,8%]本脚本[%TITLE%]正在以管理员模式运行! >> %TITLE%.log
echo 本脚本用于守护%executable%,保证其始终处于运行状态 >> %TITLE%.log
echo 更新于:2024年9月19日,by HPL. >> %TITLE%.log
echo -------------------------------------------------------------------------------- >> %TITLE%.log
echo: >> %TITLE%.log
echo:
echo --------------------------------------------------------------------------------
echo [%DATE%%TIME:~0,8%]本脚本[%TITLE%]正在以管理员模式运行!
ping 127.0.0.1 -n 1 > nul
echo 本脚本用于守护%executable%,保证其始终处于运行状态
ping 127.0.0.1 -n 1 > nul
echo 更新于:2024年9月19日,by HPL.
echo --------------------------------------------------------------------------------
echo:

echo [%DATE%%TIME:~0,8%]目标程序扫描中... >> %TITLE%.log
echo: >> %TITLE%.log
echo [%DATE%%TIME:~0,8%]目标程序扫描中...
echo:


:checkrun
tasklist|findstr /i "%executable%"
if errorlevel 1 (
echo [%DATE%%TIME:~0,8%]未检测到正在运行的%executable%,准备开启%executable%... >> %TITLE%.log
echo counter[%counter%] >> %TITLE%.log
echo -------------------------------------------------------------------------------- >> %TITLE%.log
echo [%DATE%%TIME:~0,8%]未检测到正在运行的%executable%,准备开启%executable%...
echo counter[%counter%]
echo --------------------------------------------------------------------------------
goto start
)
if errorlevel 0 (
rem 扫描时间建议5分钟以上,避免更新NasCab时被触发本程序
echo [%DATE%%TIME:~0,8%]已找到%executable%,循环扫描中[300s]...
echo counter[%counter%]
echo --------------------------------------------------------------------------------
ping 127.0.0.1 -n 300 > nul
goto checkrun
)
ping 127.0.0.1 -n 5 > nul

:start
echo: >> %TITLE%.log
echo [%DATE%%TIME:~0,8%]正在开启%executable%... >> %TITLE%.log
echo:
echo [%DATE%%TIME:~0,8%]正在开启%executable%...

rem 使用powershell后台运行NasCab(测试用)
::powershell -command "& {Start-Process %executable% -WindowStyle Hidden}"

rem 使用powershell前台运行NasCab(效果好,强烈推荐)
powershell -command "& {Start-Process %executable%}"

rem 前台运行NasCab(禁用,此方式NasCab会将程序log注入本bat所处的cmd,关掉本bat同时会关掉NasCab)
::start %executable%
ping 127.0.0.1 -n 1 > nul
echo:
echo [%DATE%%TIME:~0,8%]已成功开启%executable%! >> %TITLE%.log
echo [%DATE%%TIME:~0,8%]已成功开启%executable%!
echo counter[%counter%] >> %TITLE%.log
echo -------------------------------------------------------------------------------- >> %TITLE%.log
echo: >> %TITLE%.log
echo [%DATE%%TIME:~0,8%]5s后进入运行状态检测checkrun... >> %TITLE%.log
echo: >> %TITLE%.log
echo:
echo [%DATE%%TIME:~0,8%]5s后进入运行状态检测checkrun...
ping 127.0.0.1 -n 5 > nul
set /a counter+=1
goto checkrun

使用效果:
程序运行时会在bat所在目录生成log日志,可观察运行状态
image

From:https://www.cnblogs.com/chayasar/p/18419693
本文地址: http://www.shuzixingkong.net/article/2137
0评论
提交 加载更多评论
其他文章 主流流媒体的综合性能大 PK ( smart_rtmpd, srs, zlm, nginx rtmp )
简述 随着互联网的发展,音视频行业越来越火,自然而然的流媒体服务器也是百花齐放。市面上也有很多种类的流媒体服务器,让人眼花缭乱。特别是对技术了解不深的朋友,更不知道怎么选择。 其实作为服务器,主要考察的无外乎几个核心指标,只要符合,基本上都是属于比较优秀的流媒体服务器。我简略说一说这些核心特性: 稳
分享3款开源、免费的Avalonia UI控件库
Avalonia介绍 Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应用程序。它使用自己的渲染引擎绘制UI控件,确保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平台上具有一致的外观和行为。这意味着开发人员可以共享他们的UI代码
分享3款开源、免费的Avalonia UI控件库 分享3款开源、免费的Avalonia UI控件库 分享3款开源、免费的Avalonia UI控件库
c语言 宏的一些深层应用(##,#,宏函数)
"##" 宏拼接 #define CONCATENATE(a, b) a ## b CONCATENATE(student_, 1) // 将a和b拼接起来变成一个新的变量 -> student_1 #define CONS(a,b) int(a##e##b) CONS(2
k8s 中的 Ingress 简介【k8s 系列之三】
Ingress 的重要性不言而喻,它不仅统一了集群对外访问的入口,还提供了高级路由、七层负载均衡、SSL终止等关键功能,同时支持动态配置更新、灰度发布等高级特性。下文将进行详细介绍。
k8s 中的 Ingress 简介【k8s 系列之三】 k8s 中的 Ingress 简介【k8s 系列之三】 k8s 中的 Ingress 简介【k8s 系列之三】
Windows 调试工具课程
本文是我在集团内部上的课程记录而成的博客内容。在本次课程里面将和大家介绍一些在 Windows 上常用的调试工具,以及调查问题的常见套路。适合于伙伴们入门 Windows 调试 本文以下内容是采用原本课程课件里面的一页页的内容组装而来,过程中补充一些讲课时的内容 本次课程里面核心的内容是调试工具,调
Windows 调试工具课程 Windows 调试工具课程 Windows 调试工具课程
深入理解ConcurrentHashMap
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进行put操作,调用了HashMap的putVal(),具体原因: 假设两个线程A、B都在进行put操作,并且hash函数计算出的插入下标是相同的; 当线程A执行完第六行由于时间片耗尽导致被挂起,而线程B得到时间片后在该下标处
深入理解ConcurrentHashMap 深入理解ConcurrentHashMap 深入理解ConcurrentHashMap
程序员编写技术文章需要的四个辅助神器 ,强烈建议收藏 !
编写技术文章是程序员分享经验和记录学习成果的重要方式。 为了让写作变得更轻松,有许多实用工具可以帮助提升效率,比如 Markdown 编辑器、画图工具等。 接下来,笔者将介绍四款简单实用的工具,帮助程序员更轻松地编写技术文章。 1 Typora :Markdown 编辑器 Typora 是一款简洁而
程序员编写技术文章需要的四个辅助神器 ,强烈建议收藏 ! 程序员编写技术文章需要的四个辅助神器 ,强烈建议收藏 ! 程序员编写技术文章需要的四个辅助神器 ,强烈建议收藏 !
LoRaWAN网关价格干穿地板了
曾经LoRaWAN网关要上万块钱一台,后来卷到千把块钱,现在可以卷到500以内,还支持4G/ETH/WIFI,应该也是没谁了。 先上图片 1.1 产品特点 ◆ 高性能嵌入式硬件平台 ◆ 使用工业级 Cat.1 4G 模块 ◆ 宽压输入 DC 9~28V,工业级稳定性 ◆ 群脉冲:电源±2k
LoRaWAN网关价格干穿地板了 LoRaWAN网关价格干穿地板了 LoRaWAN网关价格干穿地板了