This article applies to:
OS: Linux
Product edition: Phoenix
Problem description
While activating Phoenix on a Linux server, the following error is displayed:
Phoenix service is not running.
Phoenix service exits upon manual start, as evident from the traceback below.
Cause
The /tmp directory is mounted as 'noexec' on some servers. This prevents the Phoenix Agent Service from starting.
Traceback
Error while starting the Phoenix service:
opt/Druva/Phoenix/lib # service Phoenix status Phoenix.service - LSB: Druva Phoenix Component Loaded: loaded (/etc/init.d/Phoenix; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Mon 2018-10-08 12:20:59 IST; 3s ago Docs: man:systemd-sysv-generator(8) Process: 1239 ExecStart=/etc/init.d/Phoenix start (code=exited, status=1/FAILURE)
Oct 08 12:20:58 systemd[1]: Starting LSB: Druva Phoenix Component... Oct 08 12:20:59 Phoenix[1239]: Starting Druva Phoenix Client: Oct 08 12:20:59 systemd[1]: Phoenix.service: Control process exited, code=exited status=1 Oct 08 12:20:59 systemd[1]: Failed to start LSB: Druva Phoenix Component. Oct 08 12:20:59 systemd[1]: Phoenix.service: Unit entered failed state. Oct 08 12:20:59 systemd[1]: Phoenix.service: Failed with result 'exit-code'.
Further verify for error in warnings.log file under /etc/Phoenix:
Traceback (most recent call last):
File "<string>", line 6, in <module> File "__main__.py", line 128, in <module> File "__main__Phoenix__.py", line 28, in <module> File "inSyncLib/inSyncUtil.py", line 56, in <module> File "ujson.py", line 7, in <module> File "ujson.py", line 6, in __bootstrap__ ImportError: /tmp/.python-eggs/ujson-1.33-py2.7-linux-x86_64.egg-tmp/ujson.so: failed to map segment from shared object: Operation not permitted
Resolution
Prerequisites:
From the System requirements section, verify whether Phoenix supports the Server OS and the File System on which it is getting installed.
Verify the above tracebacks from the logs.
Procedure: After completing the above prerequisites, follow the below steps:
Stop the Phoenix Agent service.
/etc/init.d/Phoenix stop
Delete the .python-eggs directory under the /tmp directory.
Create a directory under /var/log and name it as druvatmp.
Create a Symbolic link.
ln -s /opt/Druva/Phoenix/tmp /tmp/.python-eggs
Note
In rare scenarios even /tmp is set to have a noexec permissions, in such scenario change to the directory which does not have noexec permissions
Can check the same from
1. /etc/fstab
2. Run mount command and check noexec for the location.
3. Run a small script file with exec permissions and check
5. Start the Phoenix Agent server.
/etc/init.d/Phoenix start
6. Proceed with Agent Activation and Registration.