Linux Tips

Customizing your Plex configuration on systemd based systems

This information is intended for those systems where cat /proc/1/comm returns systemd.

On systems which use Systemd (Ubuntu 16+, Fedora 26+, Centos 7+, Debian 8+,) you create this customization file which SystemD reads prior to launching PMS. This file is independent of the default configuration and service control mechanisms in /lib/systemd/system/plexmediaserver.service. Your customization override is preserved across updates, uninstall, re-install operations.

If your system returns init, please edit the values in /etc/defaults/plexmediaserver

While you may change /lib/systemd/system/plexmediaserver.service, it is under the control of the package manager and subject to replacement without warning at any time during an update. To provide stability, systemd allows creation of an override.conf file to customize and create enduring local adjustments to a distributed default package.

You can change a number of parameters about how PMS runs on your Linux system including where the metadata (Library) resides.

The most common, and safest, parameters you can change are:

  1. Environment variables.
  2. Username PMS uses at runtime
  3. Group name PMS uses at runtime

All Environment variable specifications are of the forms:

Environment="VARIABLE_NAME=literal string here. spaces are allowed"
or
Parameter=value

Examples:

Environment="PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=/home/plexdir/Application Support"
User=chuck

WARNING: /media is a reserved directory name on Gnome-based systems. Do not put your PMS library there

The Plex-supplied service definition should not be modified as any changes are subject to overwriting at every update. For changes to persist, those changes must be maintained in /etc/systemd/system/plexmediaserver.d/override.conf

The task, with PMS stopped, is:

  1. Create the ‘override’ file in directory /etc/systemd/system/plexmediaserver.service.d
  2. Move any files if needed
  3. Change ownership if needed
  4. Inform systemd of the changes
  5. Start PMS

In the example below, the following will be shown. Tailor to your environment as needed

a) Run as user chuck:chuck
b) Move the metadata (Library) to /home/plexdir for the extra space
c) Relax the default file-creation permissions (for plug-ins, etc)

The following steps must be done as root, elevate first and get a full shell to work in

sudo sh

Begin here:

A. Create directory /etc/systemd/system/plexmediaserver.service.d.

In this directory, create override.conf configuration customization entries similar to the following example

#
# Customize Plex's config
#
# Identify this as a service override
[Service]
#
#  Move the data directory
Environment="PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=/home/plexdir/Library/Application Support"
#
#  These values are only needed if you wish to change user & group
User=chuck
Group=chuck
#
# This is needed to change the default umask     
UMask=002    # this must be octal    - See warning below 

Warning:
Some distros used UMask while others use Umask
Some distros want 4 octal digits for, not the standard 3. (Go figure…).

Please be cautious of this on your system.

B. Inform SystemD of the changes and test the related & reconfigured PMS

systemctl daemon-reload
systemctl start plexmediaserver

C. Test your system. Verify everything is exactly as it was. If not, resolve before proceeding

http://127.0.0.1:32400/web

Administration note:

Once you have created the override file, you can later edit it with systemctl edit plexmediaserver

E. Shortcut version

If you have only a few customizations to make, you may opt to let systemctl make the files for you

  1. sudo systemctl stop plexmediaserver
  2. sudo systemctl edit plexmediaserver
  3. Enter the same override information as shown above
  4. Save and exit the editor
  5. sudo systemctl daemon-reload
  6. Perform any required ownership changes or other permission work required
  7. sudo systemctl start plexmediaserver

Back to top

2 Likes