sam*_*xyz 9 java linux jvm kill gradle
我有以下 Gradle 任务
task bootup(type: JavaExec) {
dependsOn build
classpath = sourceSets.main.runtimeClasspath
main = 'org.example.ServerLauncher'
args 'hello'
maxHeapSize '512m'
}
Run Code Online (Sandbox Code Playgroud)
班级ServerLauncher.java是
task bootup(type: JavaExec) {
dependsOn build
classpath = sourceSets.main.runtimeClasspath
main = 'org.example.ServerLauncher'
args 'hello'
maxHeapSize '512m'
}
Run Code Online (Sandbox Code Playgroud)
当我构建 Jar./gradlew jar并java -jar /path/to/exec在 CLI 中运行时,我可以使用CTRL+C.
Launcher has started
^CShutdown has triggered
Launcher has closed
Run Code Online (Sandbox Code Playgroud)
但如果我运行,./gradlew bootup我将无法正常关闭可执行文件CTRL+C
> Task :bootup
Launcher has started
<===========--> 91% EXECUTING [8s]
> :bootup
^C%
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,triggerShutdown没有被执行。
我假设这是因为在JavaExec
我尝试向 发送各种终止信号期间该进程被分叉pid,但仍然没有成功。
如何触发分叉运行时的 shutdownhooks?
PS:我不想改变java代码中的逻辑。不过,我同意更改我的 Gradle 任务定义。
| 归档时间: |
|
| 查看次数: |
735 次 |
| 最近记录: |