需要帮助编写 jar 文件脚本

需要帮助编写 jar 文件脚本

我需要启动 17 个.jar文件,每次启动一个,每个文件之间有 7 秒的延迟。3 小时后,我需要终止所有java进程,但只终止那些以 Surge 用户身份运行的进程。3 小时后,我需要重复此过程。

因此我在 Windows 批处理文件中看到了类似的内容。

start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
timeout /t 10800
taskkill /F /IM java.exe /T
timeout /t 10800

start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 
start java -Xmx4G -jar C:\Users\surge\Downloads\cooljar.jar
timeout /t 7 

现在我需要 Linux shell 脚本格式的它。

所以我一直在使用

nohup java -jar cooljar.jar && nohup java -jar cooljar.jar && nohup java -jar cooljar.jar. 

但这并不意味着每次发射之间都有延迟。

编辑:抱歉,我没有提到这一点,罐子有不同的参数。

编辑@Byte Commander:我正在尝试您的示例。但它不起作用。

#!/bin/bash

launch_jars() {

    java -jar cooljar.jar -n 1
    sleep 7
    java -jar cooljar.jar -n 2
    sleep 7
    java -jar cooljar.jar -n 3
    sleep 7
    java -jar cooljar.jar -n 4
    sleep 7
    java -jar cooljar.jar -n 5
    sleep 7

}

while 1 ; do
    launch_jars
    sleep 3h
    killall -u surge java
    sleep 3h
done

我收到了错误:

$ bash /home/surge/Downloads/run.sh
/home/surge/Downloads/run.sh: line 2: $'\r': command not found
/home/surge/Downloads/run.sh: line 3: syntax error near unexpected token `$'{\r'
'home/surge/Downloads/run.sh: line 3: `launch_jars() {
$

答案1

假设您使用启动 Java JAR java -jar cooljar.jar,则可以使用以下脚本:

#!/bin/bash

launch_jars() {
    for i in {1..17} ; do
        java -jar cooljar.jar &
        sleep 7
    done
}

while 1 ; do
    launch_jars
    sleep 3h
    killall -u surge java
    sleep 3h
done

launch_jars这定义了连续 17 次启动同一个 JAR 文件的函数,每次启动间隔 7 秒。

它将运行一个无限循环来调用该函数,等待 3 个小时,终止java用户的所有进程surge,然后再等待 3 个小时。

复制脚本并使用文本编辑器保存,例如geditjar-launcher.sh然后通过运行终端命令使其可执行

chmod +x jar-launcher.sh

然后你就可以运行脚本了。要中止它,请按Ctrl+ C

相关内容