Fork me on GitHub
一共有 48 篇文章,分页:2 / 10

监控自身BAT进程关闭(控制台退出时得到通知)

今天有个需求,需要使用bat开启多个进程,然后在bat被人为关闭窗口时,可以清理之前通过bat开启的进程,于是就有了下面的脚本,该脚本可以监控自身BAT进程关闭,在进程关闭时可以做清理,或者别的工作(比如用来清理主进程开启的其他程序,甚至可以再重新启动一个进程达到守护自身进程的效果?),其实现原理是开启一个新的隐藏进程,隔几秒检查一下主进程是否退出,如果主进程已退出则执行clean过程

onkill.bat

@echo off
echo ****************************************************
echo *       author:https://yoyo.play175.com/           *
echo ****************************************************

pushd %~dp0

if "%1" == "autoclean" goto :autoclean   

REM 获得当前CMD进程PID
set TempFile=%TEMP%\__ParentProcessId.tmp
wmic process where (Name="wmic.exe" AND CommandLine LIKE "%%%TIME%%%") get ParentProcessId /value | find "ParentProcessId" >%TempFile%
set /P _string=<%TempFile%
set _pid=%_string:~16%

REM 隐式启动autoclean进程...
mshta vbscript:createobject("wscript.shell").run("%~nx0 autoclean %_pid% ""%~dp0""",0)(window.close)
goto :main
exit

REM autoclean进程代码
:autoclean
pushd %3
timeout /t 3 /NOBREAK >nul
(TASKLIST /FI "IMAGENAME eq cmd.exe" /FI "PID eq %2"|findstr "cmd.exe">nul&&goto :autoclean)||goto :clean
exit

:clean
    REM 这里写清理脚本
    REM 下面这行是示例代码,主进程结束时,写入一段文字到文本文件,来证明clean确实被执行了
    echo %time% cleaned > cleaned.txt

exit

:main
    REM 这里写主脚本
    REM 下面是示例代码,隔几秒往屏幕输出一行文字
    echo %time% main running...
    timeout /t 3 /NOBREAK >nul
    goto :main

VUE开发全家桶

至此,使用VUE跑通了所有平台,真正的一套代码,到处运行。向伟大的VUE致敬!

解决Windows 10 安装 iCloud时提示“您的电脑缺少媒体功能。请从Microsoft网站下载Media Feature Pack/Windows并安装,然后再试一次。”

这是因为win10现在默认不安装Windows media player,所以不能通过iCloud的安装条件的检测,解决方法如下:

打开“控制面板”

->“软件和功能”

->“启用或关闭Windows功能”

->展开“媒体功能”

->勾选“windows media player”

->点击确定

使用acme.sh从 letsencrypt 生成免费的SSL证书

acme.sh是一个简洁无依赖的命令行工具,可以从 letsencrypt 生成免费的证书.

安装

curl  https://get.acme.sh | sh

记得安装完之后需要重新登录ssh这样命令才会生效

申请证书

#//nginx自动验证
acme.sh --issue  -d www.abc.com  --nginx

2018年2月份以后letsencrypt支持了泛域名证书!acme.sh也支持申请泛域名证书,申请泛域名证书必须使用dns验证,如果需要自动需求,假设我们的域名是使用的cloudflare那可以这样:

acme.sh  --force   --issue -d *.abc.com --dns dns_cf

上面命令可能报错,因为你还没有指定cloudflare的key,需要先指定:

export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"

阿里云dns验证:

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
acme.sh --issue --dns dns_ali  -d *.example.com

更多dns验证的用法看这里:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md

安装证书

mkdir -p /data/cert

acme.sh  --installcert  -d  www.abc.com --key-file /data/cert/www.abc.com.key --fullchain-file /data/cert/www.abc.com.cer --reloadcmd  "service nginx force-reload"

配置nginx

server {
    listen 80;
    server_name www.abc.com;

    index  index.html;  
    root  /data/wwwroot;    


    listen        443 ssl;
    ssl        off;
    ssl_certificate        /data/cert/www.abc.com.cer;
    ssl_certificate_key    /data/cert/www.abc.com.key;
}

参考链接:

https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E

https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md

https://community.letsencrypt.org/t/acme-sh-supports-acme-v2-wildcard-now/49685

centos 7 安装maven 和 自动编译

wget http://mirrors.shuosc.org/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
tar -xzf apache-maven-3.5.2-bin.tar.gz
mv apache-maven-3.5.2 /usr/local/apache-maven

cat > /etc/profile.d/maven.sh << EOF

export JAVA_HOME=/data/jdk1.8.0_144  
export JRE_HOME=/data/jdk1.8.0_144/jre   
export MAVEN_HOME=/usr/local/apache-maven
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$MAVEN_HOME/bin:$PATH

EOF

编译脚本参考

#!/bin/bash

source /etc/profile

cd /data/dev/project1/

#环境变量设置
export JAVA_HOME=/data/jdk1.8.0_144  
export JRE_HOME=/data/jdk1.8.0_144/jre   
export MAVEN_HOME=/usr/local/apache-maven
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$MAVEN_HOME/bin:$PATH

#如果需要全新安装项目依赖请先执行下面一行
#mvn clean install dependency:resolve

#编译
mvn prepare-package war:exploded