Type=simple
ExecStart=/usr/sbin/argeoctl start
ExecReload=/usr/sbin/argeoctl reload
+SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
-ExecStart=/usr/sbin/argeoctl start %I
-ExecReload=/usr/sbin/argeoctl reload %I
DynamicUser=true
StateDirectory=argeo.d/%I
LogsDirectory=argeo.d/%I
ConfigurationDirectory=argeo.d/%I
+WorkingDirectory=/var/lib/argeo.d/%I
-# Workaround to pass locations for systemd with version < 240
-Environment=INSTANCE_DIR=/var/lib/argeo.d/%I CONF_DIR=/etc/argeo.d/%I
-#Environment="INSTANCE_DIR=$STATE_DIRECTORY" "CONF_DIR=$CONFIGURATION_DIRECTORY"
-PassEnvironment=INSTANCE_DIR CONF_DIR
+ExecStart=/usr/lib/jvm/jre-11/bin/java \
+ -Dlog4j.configuration="file:/etc/argeo.d/%I/log4j.properties" \
+ @/etc/argeo.d/%I/jvm.args \
+ @/usr/share/osgi/boot/framework.args \
+ -configuration /var/lib/argeo.d/%I/state \
+ -data /var/lib/argeo.d/%I/data
+#ExecReload=/usr/sbin/argeoctl reload %I
+# Exit codes of the JVM when SIGTERM or SIGINT have been caught:
+SuccessExitStatus=143 130
+#ExecStopPost=/usr/bin/cat "$EXIT_STATUS" > /var/lib/argeo.d/%I/state/EXIT_STATUS
[Install]
WantedBy=multi-user.target
</includes>
</dependency>
</mapping>
+ <mapping>
+ <directory>/usr/share/osgi/boot</directory>
+ <username>root</username>
+ <groupname>root</groupname>
+ <filemode>644</filemode>
+ <configuration>noreplace</configuration>
+ <directoryIncluded>false</directoryIncluded>
+ <sources>
+ <source>
+ <location>rpm/usr/share/osgi/boot</location>
+ <includes>
+ <include>*.args</include>
+ </includes>
+ </source>
+ </sources>
+ </mapping>
</mappings>
<requires>
<require>osgi-boot-equinox</require>
--- /dev/null
+-jar /usr/share/osgi/boot/org.eclipse.osgi.jar
\ No newline at end of file
import static org.argeo.osgi.boot.OsgiBootUtils.warn;
import java.io.File;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
} else {
for (String source : sources.split(",")) {
if (source.trim().equals(A2Source.DEFAULT_A2_URI)) {
- provisioningManager
- .registerSource(A2Source.SCHEME_A2 + "://" + homePath.toString() + "/.local/share/osgi");
+ if (Files.exists(homePath))
+ provisioningManager.registerSource(
+ A2Source.SCHEME_A2 + "://" + homePath.toString() + "/.local/share/osgi");
provisioningManager.registerSource(A2Source.SCHEME_A2 + ":///usr/local/share/osgi");
provisioningManager.registerSource(A2Source.SCHEME_A2 + ":///usr/share/osgi");
} else {