From 5a50b266624bceee5243c6eadf86d958768bfa6c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 14 Apr 2017 11:19:29 -0700 Subject: [PATCH] plex: Don't overwrite primary database on restart This change fixes two major issues: 1. If you don't use SIGQUIT to stop Plex it will corrupt its own database :( 2. Newer versions of Plex keep metadata in the `com.plexapp.plugins.library.db` database. This is the file that we copy into `/var/lib/plex/.skeleton`. If we copy the empty database on top of this one the user will lose their entire library metadata. This change skips the copy if the file already exists. --- nixos/modules/services/misc/plex.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/plex.nix b/nixos/modules/services/misc/plex.nix index f6bf2dee9865..9c0bea8d3bff 100644 --- a/nixos/modules/services/misc/plex.nix +++ b/nixos/modules/services/misc/plex.nix @@ -93,7 +93,9 @@ in # why this is done. test -d "${cfg.dataDir}/.skeleton" || mkdir "${cfg.dataDir}/.skeleton" for db in "com.plexapp.plugins.library.db"; do - cp "${cfg.package}/usr/lib/plexmediaserver/Resources/base_$db" "${cfg.dataDir}/.skeleton/$db" + if [ ! -e "${cfg.dataDir}/.skeleton/$db" ]; then + cp "${cfg.package}/usr/lib/plexmediaserver/Resources/base_$db" "${cfg.dataDir}/.skeleton/$db" + fi chmod u+w "${cfg.dataDir}/.skeleton/$db" chown ${cfg.user}:${cfg.group} "${cfg.dataDir}/.skeleton/$db" done @@ -136,6 +138,7 @@ in Group = cfg.group; PermissionsStartOnly = "true"; ExecStart = "/bin/sh -c ${cfg.package}/usr/lib/plexmediaserver/Plex\\ Media\\ Server"; + KillSignal = "SIGQUIT"; Restart = "on-failure"; }; environment = {