From bd85e5b4da0be5177f7fd766641c75dabaf9c45d Mon Sep 17 00:00:00 2001 From: Abhinandan Prateek Date: Thu, 20 Oct 2016 11:07:52 +0530 Subject: [PATCH] CLOUDSTACK-9551: Move java tmp dir to cloudstack-agent's path to avoid noexec on /tmp --- packaging/centos63/cloud-agent.rc | 6 +++++- packaging/debian/cloudstack-agent.init | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packaging/centos63/cloud-agent.rc b/packaging/centos63/cloud-agent.rc index 6cc6abc5e5f..aad95828f6d 100755 --- a/packaging/centos63/cloud-agent.rc +++ b/packaging/centos63/cloud-agent.rc @@ -26,6 +26,7 @@ # set environment variables +TMP=/usr/share/cloudstack-agent/tmp SHORTNAME=$(basename $0 | sed -e 's/^[SK][0-9][0-9]//') PIDFILE=/var/run/"$SHORTNAME".pid LOCKFILE=/var/lock/subsys/"$SHORTNAME" @@ -41,6 +42,9 @@ if [ -z "$JSVC" ]; then exit 1; fi +# create java tmp dir if not found +mkdir -m 0755 -p "$TMP" + unset OPTIONS [ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME" @@ -64,7 +68,7 @@ export CLASSPATH="/usr/share/java/commons-daemon.jar:$ACP:$PCP:/etc/cloudstack/a start() { echo -n $"Starting $PROGNAME: " if hostname --fqdn >/dev/null 2>&1 ; then - $JSVC -Xms256m -Xmx2048m -cp "$CLASSPATH" -pidfile "$PIDFILE" \ + $JSVC -Djava.io.tmpdir="$TMP" -Xms256m -Xmx2048m -cp "$CLASSPATH" -pidfile "$PIDFILE" \ -errfile $LOGDIR/cloudstack-agent.err -outfile $LOGDIR/cloudstack-agent.out $CLASS RETVAL=$? echo diff --git a/packaging/debian/cloudstack-agent.init b/packaging/debian/cloudstack-agent.init index a3f2ae9bcf4..0cae5f55a3c 100755 --- a/packaging/debian/cloudstack-agent.init +++ b/packaging/debian/cloudstack-agent.init @@ -33,6 +33,7 @@ . /lib/lsb/init-functions +TMP=/usr/share/cloudstack-agent/tmp SHORTNAME="cloudstack-agent" PIDFILE=/var/run/"$SHORTNAME".pid LOCKFILE=/var/lock/subsys/"$SHORTNAME" @@ -45,6 +46,9 @@ SHUTDOWN_WAIT="30" unset OPTIONS [ -r /etc/default/"$SHORTNAME" ] && source /etc/default/"$SHORTNAME" +# create java tmp dir if not found +mkdir -m 0755 -p "$TMP" + # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun" @@ -96,7 +100,7 @@ start() { wait_for_network - if start_daemon -p $PIDFILE $DAEMON -Xms256m -Xmx2048m -cp "$CLASSPATH" -Djna.nosys=true -pidfile "$PIDFILE" -errfile SYSLOG $CLASS + if start_daemon -p $PIDFILE $DAEMON -Djava.io.tmpdir="$TMP" -Xms256m -Xmx2048m -cp "$CLASSPATH" -Djna.nosys=true -pidfile "$PIDFILE" -errfile SYSLOG $CLASS RETVAL=$? then rc=0