mirror of
https://github.com/internetarchive/heritrix3.git
synced 2026-10-09 05:41:21 +00:00
Only write heritrix_dmesg.log when requested (#779)
Only write heritrix_dmesg.log when requested Heritrix.java always created heritrix_dmesg.log in $HERITRIX_HOME, even though only the bin/heritrix script reads it, and only when it starts Heritrix in the background. This got in the way of making $HERITRIX_HOME read-only for Docker and systemd setups. The startup log is now written only when the heritrix.dmesg system property gives its path. bin/heritrix sets this property in background mode and keeps the file in the same place as before. Also fix a typo in bin/heritrix ($startmessage) that stopped it removing a heritrix_dmesg.log left over from a previous start. Set -Dheritrix.dmesg in heritrix.cmd too.
This commit is contained in:
1 parent
0ca9e5dc2a
commit
a09f38570d
3 files changed
+27
-19
No files matched your search
@@ -71,7 +71,9 @@ import org.restlet.security.MapVerifier;
|
||||
* stderr show on the console, this class prints usage or startup output
|
||||
* such as where the web UI can be found, etc., to a STARTLOG that the shell
|
||||
* script is waiting on. As soon as the shell script sees output in this file,
|
||||
* it prints its content and breaks out of its wait.
|
||||
* it prints its content and breaks out of its wait. The STARTLOG is only
|
||||
* written if its path is given by the <code>heritrix.dmesg</code> system
|
||||
* property.
|
||||
* See ${HERITRIX_HOME}/bin/heritrix.
|
||||
*
|
||||
* <p>Heritrix can also be embedded or launched by webapp initialization or
|
||||
@@ -106,12 +108,11 @@ public class Heritrix {
|
||||
/**
|
||||
* Heritrix start log file.
|
||||
*
|
||||
* This file contains standard out produced by this main class for startup
|
||||
* only. Used by heritrix shell script. Name here MUST match that in the
|
||||
* <code>bin/heritrix</code> shell script. This is a DEPENDENCY the shell
|
||||
* wrapper has on this here java heritrix.
|
||||
* System property naming a file to receive a copy of standard out produced
|
||||
* by this main class for startup only. Set by the <code>bin/heritrix</code>
|
||||
* shell script when backgrounding heritrix. If unset, no file is written.
|
||||
*/
|
||||
private static final String STARTLOG = "heritrix_dmesg.log";
|
||||
private static final String STARTLOG_PROPERTY = "heritrix.dmesg";
|
||||
|
||||
private enum AuthMode {
|
||||
DIGEST, BASIC;
|
||||
@@ -227,15 +228,19 @@ public class Heritrix {
|
||||
}
|
||||
|
||||
|
||||
BufferedOutputStream startupOutStream =
|
||||
new BufferedOutputStream(
|
||||
new FileOutputStream(
|
||||
new File(getHeritrixHome(), STARTLOG)),16384);
|
||||
PrintStream startupOut =
|
||||
new PrintStream(
|
||||
new TeeOutputStream(
|
||||
System.out,
|
||||
startupOutStream));
|
||||
String startLog = System.getProperty(STARTLOG_PROPERTY);
|
||||
BufferedOutputStream startupOutStream = null;
|
||||
PrintStream startupOut = System.out;
|
||||
if (startLog != null) {
|
||||
startupOutStream =
|
||||
new BufferedOutputStream(
|
||||
new FileOutputStream(startLog),16384);
|
||||
startupOut =
|
||||
new PrintStream(
|
||||
new TeeOutputStream(
|
||||
System.out,
|
||||
startupOutStream));
|
||||
}
|
||||
|
||||
CommandLine cl = getCommandLine(startupOut, args);
|
||||
if (cl == null) return;
|
||||
@@ -448,7 +453,9 @@ public class Heritrix {
|
||||
} finally {
|
||||
startupOut.flush();
|
||||
// stop writing to side startup file
|
||||
startupOutStream.close();
|
||||
if (startupOutStream != null) {
|
||||
startupOutStream.close();
|
||||
}
|
||||
System.out.println("Heritrix version: " +
|
||||
ArchiveUtils.VERSION);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user