Skip to main content

How to run SDC service under a non-default account after an RPM installation?

  • December 21, 2021
  • 0 replies
  • 42 views

AkshayJadhav
StreamSets Employee
Forum|alt.badge.img

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/

Did this topic help you find an answer to your question?
This topic has been closed for comments