If you get the following error,

Please specify LD_LIBRARY_PATH as follows on starting skedler
usage : sudo LD_LIBRARY_PATH=<path> bin/skedler
Please ignore the above message if specified
module.js:460
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: libjvm.so: cannot open shared object file: No such file or directory
    at Error (native)
    at Object.Module._extensions..node (module.js:460:18)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/opt/skedler/node_modules/java/lib/nodeJavaBridge.js:21:16)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)


To resolve 

  • We recommend you to run the skedler_home/install.sh script when you Install Skedler on your machine.
    • Before you run the script file kindly follow the steps given below,
      • Set the value for the variable JAVA_HOME in the skedler_home/install.sh script as follows,
        •  Check JAVA_HOME using the command echo $JAVA_HOME.
        • Copy and paste the output to the install.sh
      • Save install.sh.
    • Provide the required permission to skedler_home/install.sh script file using the command sudo chmod u+x install.sh
    • Install Skedler using the command. 
      • Run install.sh as sudo user sudo ./install.sh
    • You can start Skedler as a service or manually.
      • Manually: bin/skedler
      • Service: sudo service skedler start
  • For more detailed installation kindly refer the section Configure Permissions and Java_Home the following solution,

        Step-by-Step Installation Guide for Linux


Alternative ways to resolve the issue,
  • To run the application manually as normal user

1. Configure LD_LIBRARY_PATH in /etc/bash.bashrc by adding the following line,

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server

2. Compile it using the command given below,

source /etc/bash.bashrc

3. Start skedler as bin/skedler debug


  • If you are running the application manually as root user, After configuring LD_LIBRARY_PATH as above please check the whether the root has LD_LIBRARY_PATH in environment variable using the following command,

sudo  env | grep LD_LIBRARY_PATH

  • If LD_LIBRARY is not present, please start skedler as follows,

LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server bin/skedler

  • If you are running the application as service. Add the following line to the service script

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server