Scenario:
SDC installation via RPM will have the service running under the ownership of the default account sdc.
Goal:
To have SDC service run under a non-default account after an RPM installation.
Solution:
=> First, verify that the daemon is running under the default account after an RPM install.
# ps -ef | grep configDir.*stream
sdc 110244 1 11 04:09 ? 00:00:40 /usr/java/jdk1.8.0_144/bin/java -classpath /opt/streamsets-datacollector/libexec/bootstrap-libs/main/streamsets-datacollector-bootstrap-2.7.1.1.jar:/opt/streamsets-datacollector/root-lib/* -Djava.security.manager -Djava.security.policy=file:///etc/sdc/sdc-security.policy -Xmx1024m -Xms1024m -server -XX:-OmitStackTraceInFastThrow -Doracle.jdbc.javaNetNio=true -Dsdc.dist.dir=/opt/streamsets-datacollector -Dsdc.resources.dir=/var/lib/sdc-resources -Dsdc.hostname=node-1.cluster -Dsdc.conf.dir=/etc/sdc -Dsdc.data.dir=/var/lib/sdc -Dsdc.log.dir=/var/log/sdc -javaagent:/opt/streamsets-datacollector/libexec/bootstrap-libs/main/streamsets-datacollector-bootstrap-2.7.1.1.jar -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Djdk.nio.maxCachedBufferSize=262144 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/sdc/sdc_heapdump_1506485349.hprof -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/sdc/gc.log com.streamsets.pipeline.BootstrapMain -mainClass com.streamsets.datacollector.main.DataCollectorMain -apiClasspath /opt/streamsets-datacollector/api-lib/*.jar -containerClasspath /etc/sdc:/opt/streamsets-datacollector/container-lib/*.jar -streamsetsLibrariesDir /opt/streamsets-datacollector/streamsets-libs -userLibrariesDir /opt/streamsets-datacollector/user-libs/ -configDir /etc/sdc -libsCommonLibDir /opt/streamsets-datacollector/libs-common-lib/ -streamsetsLibrariesExtraDir /opt/streamsets-datacollector/streamsets-libs-extras/
=> Add 'SDC_USER=root' and 'SDC_GROUP=root' in /etc/init.d/sdc in the relevant section as shown below.
# User $SDC_USER must exist
SDC_USER=root
if ! id -u "$SDC_USER" >/dev/null 2>&1
then
echo "Error: user '$SDC_USER' does not exist."
exit 4
fi
# Group $SDC_GROUP mut exist
SDC_GROUP=root
if ! groups "$SDC_USER" | grep "$SDC_GROUP" >/dev/null 2>&1
then
echo "Error: group '$SDC_GROUP' does not exist."
exit 4
fi
=> Apply the following ownership changes to the directories shown below
sudo chown -R root:root /var/log/sdc/
sudo chown -R root:root /etc/sdc
sudo chown -R root:root /var/lib/sdc
=> Do an SDC service restart.
# service sdc restart
INFO: sdc started successfully.
=> Ensure that the daemon is now running under the customized account (root, in this case).
# ps -ef | grep configDir.*stream
root 130870 1 99 04:15 pts/7 00:00:34 /usr/java/jdk1.8.0_144/bin/java -classpath /opt/streamsets-datacollector/libexec/bootstrap-libs/main/streamsets-datacollector-bootstrap-2.7.1.1.jar:/opt/streamsets-datacollector/root-lib/* -Djava.security.manager -Djava.security.policy=file:///etc/sdc/sdc-security.policy -Xmx1024m -Xms1024m -server -XX:-OmitStackTraceInFastThrow -Doracle.jdbc.javaNetNio=true -Dsdc.dist.dir=/opt/streamsets-datacollector -Dsdc.resources.dir=/var/lib/sdc-resources -Dsdc.hostname=node-1.cluster -Dsdc.conf.dir=/etc/sdc -Dsdc.data.dir=/var/lib/sdc -Dsdc.log.dir=/var/log/sdc -javaagent:/opt/streamsets-datacollector/libexec/bootstrap-libs/main/streamsets-datacollector-bootstrap-2.7.1.1.jar -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Djdk.nio.maxCachedBufferSize=262144 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/sdc/sdc_heapdump_1506485756.hprof -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/sdc/gc.log com.streamsets.pipeline.BootstrapMain -mainClass com.streamsets.datacollector.main.DataCollectorMain -apiClasspath /opt/streamsets-datacollector/api-lib/*.jar -containerClasspath /etc/sdc:/opt/streamsets-datacollector/container-lib/*.jar -streamsetsLibrariesDir /opt/streamsets-datacollector/streamsets-libs -userLibrariesDir /opt/streamsets-datacollector/user-libs/ -configDir /etc/sdc -libsCommonLibDir /opt/streamsets-datacollector/libs-common-lib/ -streamsetsLibrariesExtraDir /opt/streamsets-datacollector/streamsets-libs-extras/