+ Reply to Thread
Results 1 to 2 of 2

Thread: Starting Fiery XF Control Server from headless server

  1. #1
    Join Date
    Apr 2018
    Posts
    2

    Default Starting Fiery XF Control Server from headless server

    Hi all,

    I wanted to share my experience with getting EFI Fiery XF Control to run on a headless Mac Mini without needing to have a user logged in. Mind you, this procedure is experimental. If you choose to attempt what I have done, do so at your own risk. I tried searching on Google and the EFI forums for an answer, and sadly I couldn't find any solution someone else has come up with. Hopefully this method will help out other Mac users who manage small print offices, etc.

    Firstly, I installed Fiery XF Control server software and configured it for my environment. All users and workflows were set up and made sure the application was working before I made my next change. Then I ran the following command to gather some information about the EFI software (this command will print out all system processes and then search by the case-insensitive term "efi"):

    Code:
    sudo ps waax | grep -i efi
    From here I was able to find out which programs were being launched by EFI.

    Code:
    /Library/Application Support/EFI/ES1000Service/ES1000Server
    /Applications/EFI Fiery XF/Server/Fiery XF Control.app/Contents/MacOS/Fiery XF Control timer1Action
    /Applications/EFI Fiery XF/Server/EFI XF Server.app/Contents/MacOS/EFI XF Server
    /Applications/EFI Fiery XF/JDF/JDFConnectorServer
    EFI -T HOSTNAME 0.0.0 -c /Applications/FlexLM -lmgrd_port 9999 --lmgrd_start 1abcd23e
    #
    # # Customer-specific values:
    #
    # HOSTNAME = hostname of server
    # 0.0.0 = don't know what this is. Might be a version number?
    # 9999 = host port
    # 1abcd23e = not sure what this is either.
    The last line was a little confusing, as I wasn't able to find any command by the name of "EFI", so I did a search on the machine to find out where it was from:

    Code:
    sudo find -x / type -f -name "EFI"
    and that returned

    Code:
    /Applications/FlexLM/EFI
    So I inserted "/Applications/FlexLM/" before "EFI" and ran the full line of code after rebooting and it seemed to work. So I threw everything together in an entire script (I've obfuscated any personal information):

    Code:
    #!/bin/bash
    logFile="launchFieryXFControl.log"
    logDir="/var/log/efi"
    
    if [[ ! -d ${logDir} ]];then
      mkdir -p ${logDir}
    fi
    if [[ ! -f ${logDir}/${logFile} ]];then
      echo "" > ${logDir}/${logFile}
    fi
    
    f_logr () {
      logPhrase="$1"
      fr_logr () {
        # Prints logs to custom log file
        echo -e "$(date +%Y/%d/%m-%r): ${fname} - $1" >> ${logDir}/${logFile}
      }
      fr_logr "${logPhrase}"
    }
    
    f_logr "Starting Fiery XF Control admin service..."
    /Applications/EFI\ Fiery\ XF/Server/Fiery\ XF\ Control.app/Contents/Resources/AdminService.app/Contents/MacOS/AdminService -control start timer1Action &
    sleep 30
    f_logr "Fiery XF Control admin service started."
    
    f_logr "Starging ES1000Server..."
    if [[ ! $(ps waax | grep [E]S1000Server) ]];then
      /Library/Application\ Support/EFI/ES1000Service/ES1000Server &
      sleep 10
    fi
    f_logr "ES1000Server started."
    
    f_logr "Starting Fiery XF Control.app..."
    if [[ ! $(ps waax | grep [C]ontrol.app/Contents/MacOS/Fiery) ]];then
      /Applications/EFI\ Fiery\ XF/Server/Fiery\ XF\ Control.app/Contents/MacOS/Fiery\ XF\ Control timer1Action &
      sleep 10
    fi
    f_logr "Fiery XF Control.app started."
    
    f_logr "Starting Fiery XF Server.app..."
    if [[ ! $(ps waax | grep [S]erver.app/Contents/MacOS/EFI) ]];then
      /Applications/EFI\ Fiery\ XF/Server/EFI\ XF\ Server.app/Contents/MacOS/EFI\ XF\ Server &
      sleep 10
    fi
    f_logr "Starting Fiery XF Server.app started."
    
    f_logr "Starting JDFConnectorServer..."
    if [[ ! $(ps waax | grep [J]DFConnectorServer) ]];then
      /Applications/EFI\ Fiery\ XF/JDF/JDFConnectorServer &
      sleep 20
    fi
    f_logr "JDFConnectorServer started."
    
    
    f_logr "Starting FlexLM..."
    if [[ ! $(ps waax | grep [l]mgrd_port) ]];then
      /Applications/FlexLM/EFI -T HOSTNAME 0.0.0 -c /Applications/FlexLM -lmgrd_port 9999 --lmgrd_start 1abcd23e &
      sleep 20
    fi
    f_logr "FlexLM started."
    
    exit
    After that I decided to write a custom launchd file to launch the script at boot. I had trouble with these applications running at the login window so I had to specifically call it out in the launchd plist file which I wrote in /Library/LaunchDaemons/org.control.fiery.plist.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>Label</key>
    	<string>org.control.fiery</string>
    	<key>LimitLoadToSessionType</key>
    	<array>
    		<string>LoginWindow</string>
    		<string>Aqua</string>
    	</array>
    	<key>RunAtLoad</key>
    	<true/>
    	<key>KeepAlive</key>
    	<false/>
    	<key>Program</key>
            <string>/usr/local/efi/launchFieryXFControl.sh</string>
            <key>StandardOutPath</key>
            <string>/tmp/fieryxf.stdout</string>
            <key>StandardErrorPath</key>
            <string>/tmp/fieryxf.stderr</string>
    </dict>
    </plist>
    After that it seems like I was able to get everything going OK. I rebooted the server, waited a few minutes, then launched Fiery XF Control from my remote laptop. Everything seems to work!

    Please let me know about your thoughts or if you have any suggestions. Thank you!

  2. #2
    Join Date
    Apr 2018
    Posts
    2

    Default

    It looks like some of the Fiery processes are being killed by some apparent management process. I will have to modify my script to periodically check to make sure all necessary Fiery processes are running.

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts