簡體   English   中英

jsvc&Gradle-沒有控制台輸出,Gradle守護程序崩潰

[英]jsvc & Gradle - no console output, Gradle daemon crashes

我正在嘗試在本地計算機上使用IntelliJ IDEA測試我的Java應用程序(它打算用作守護程序,因此使用jsvc )。

為了進行測試,我希望將stdout和stderr都輸出到控制台。 根據jsvc幫助站點( jsvc --help )的設置, -outfile '&2'-errfile '&1'應該將stdout和stderr彼此重定向(根據我的理解)。

在普通外殼程序(設置了這兩個選項)中,守護程序啟動並向控制台輸出一些內容,但是當使用Gradle Exec任務和完全相同的命令時,Gradle守護程序崩潰並輸出到文件'&2'和'&1' 。

任務配置:

File jsvcFile = file("./jsvc")
File pidFile = file("./jsvc.pid")

String mainClass = "substupdater.SubstUpdater"

task run (dependsOn: [jar, jsvc], type: Exec) {

    doFirst {

        // Get the absolute path of all libraries
        String classPath = project.configurations.compile.join(':')

        executable(jsvcFile)

        args("-server", "-cp", classPath + ':' + jar.archivePath, "-nodetach",
             "-cwd", project.rootDir, "-outfile", "'&2'", "-errfile", "'&1'",
             "-pidfile", pidFile, "-procname", project.name, mainClass, "debug")

    }
}

Gradle守護程序崩潰(gradle -d運行):

21:57:52.911 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING
21:57:52.914 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command '/path/to/jsvc'.
21:57:52.924 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTED
21:57:52.925 [INFO] [org.gradle.process.internal.DefaultExecHandle] Successfully started process 'command '/path/to/jsvc''
21:57:52.926 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] waiting until streams are handled...
Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.
21:57:53.528 [DEBUG] [org.gradle.launcher.daemon.registry.PersistentDaemonRegistry] Removing daemon address: [some-address port:35450, addresses:[/0:0:0:0:0:0:0:1%lo, /127.0.0.1]]
21:57:53.529 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
21:57:53.529 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
21:57:53.530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
21:57:53.530 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] Abort requested. Destroying process: command '/path/to/jsvc'.
21:57:53.532 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: ABORTED
21:57:53.533 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command '/path/to/jsvc'' finished with exit value 1 (state: ABORTED)
----- End of the daemon log -----

21:57:53.888 [DEBUG] [org.gradle.launcher.daemon.client.DaemonClientInputForwarder] Dispatching close input message: org.gradle.launcher.daemon.protocol.CloseInput@ce9a99
21:57:53.888 [DEBUG] [org.gradle.launcher.daemon.client.DaemonClientConnection] thread 18: dispatching class org.gradle.launcher.daemon.protocol.CloseInput
21:57:53.889 [DEBUG] [org.gradle.launcher.daemon.client.DaemonClientConnection] thread 1: connection stop
21:57:53.907 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
21:57:53.907 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
21:57:53.907 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
21:57:53.908 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
21:57:53.908 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
21:57:53.908 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
21:57:53.908 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
21:57:53.908 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.

任何幫助,將不勝感激 :)

我只需要指定文件描述符符號鏈接的完整路徑(對於stdout就是/proc/self/fd/1 ,對於stderr就是/proc/self/fd/2 ),現在輸出到控制台了。

Gradle守護程序仍然崩潰,但是我認為這是由於Gradle無法處理jsvc守護程序進程殺死了自己(?)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM