Review the recommended architecture for Media Management for guidance on setup of your SkyVault server and remote server.
These instructions are for a Unix environment only and use an init.d script. For more information on using these scripts, see Init scripts.
-
Create a new directory, /opt/contentservices, and move the files from the remote-node installation directory to the new directory.
See Installing Media Management for more information on the shipped Media Management installation files.
-
Create a user named contentservices that you will use to run the automatic
process, with a home set to /opt/contentservices:
sudo useradd -m contentservices
-
Create an init.d script; for example, in
/etc/init.d/contentservices to run the content services node under the
contentservices user:
#!/bin/bash # chkconfig: 345 91 9 # description: SkyVault Content Service ### BEGIN INIT INFO # Provides: SkyVault MM Module Content Service # Required-Start: $local_fs $network $activemq # Required-Stop: $local_fs $network $activemq # Default-Start: 3 4 5 # Default-Stop: 0 1 6 # Description: Start the program ### END INIT INFO ### Fill in these bits: USER="contentservices" JAR_LOCATION=/opt/contentservices PID_FILE="/var/run/contentservices/contentservices.pid" JAR_VERSION=0.3-SNAPSHOT JAR_FILE=content-services-node-$JAR_VERSION.jar START_CMD="\"cd $JAR_LOCATION;java -jar $JAR_FILE server config.yml > /dev/null 2>&1 &\"" NAME="alfresco-contentservices" PGREP_STRING="$JAR_FILE" ### No Changes required below this point CUR_USER=`whoami` killproc() { pkill -u $USER -f $PGREP_STRING } start_daemon() { eval "$*" } log_success_msg() { echo "$*" logger "$_" } log_failure_msg() { echo "$*" logger "$_" } check_proc() { pgrep -u $USER -f $PGREP_STRING >/dev/null } start_script() { if [ "${CUR_USER}" != "root" ] ; then log_failure_msg "$NAME can only be started as 'root'." exit -1 fi check_proc if [ $? -eq 0 ]; then log_success_msg "$NAME is already running." exit 0 fi [ -d /var/run/$NAME ] || (mkdir /var/run/$NAME ) # For SELinux we need to use 'runuser' not 'su' if [ -x "/sbin/runuser" ]; then SU="/sbin/runuser -s /bin/sh" else SU="/bin/su -s /bin/sh" fi start_daemon $SU $USER -c "$START_CMD" # Sleep for a while to see if anything cries sleep 5 check_proc if [ $? -eq 0 ]; then log_success_msg "Started $NAME." else log_failure_msg "Error starting $NAME." exit -1 fi } stop_script() { if [ "${CUR_USER}" != "root" ] ; then log_failure_msg "You do not have permission to stop $NAME." exit -1 fi check_proc if [ $? -eq 0 ]; then killproc -p $PID_FILE >/dev/null # Make sure it's dead before we return until [ $? -ne 0 ]; do sleep 1 check_proc done check_proc if [ $? -eq 0 ]; then log_failure_msg "Error stopping $NAME." exit -1 else log_success_msg "Stopped $NAME." fi else log_failure_msg "$NAME is not running or you don't have permission to stop it" fi } check_status() { check_proc if [ $? -eq 0 ]; then log_success_msg "$NAME is running." else log_failure_msg "$NAME is stopped." exit -1 fi } case "$1" in start) start_script ;; stop) stop_script ;; restart) stop_script start_script ;; status) check_status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0
-
Make the file executable and enable the script:
chmod +x /etc/init.d/contentservices chkconfig --add SkyVault-contentservices
-
Modify the config.yml file to specify your environment settings;
for example, your ActiveMQ host name if it is on a different server:
messaging: broker: url: tcp://localhost:61616
The content services node uses ImageMagick and FFmpeg and requires that the executable directories are available on the system PATH variable.
For more information about the content services framework, see Content services node architecture.
- Ensure that the target server port is open and not blocked by a firewall.