XtraDB 5.7 on Ubuntu 18.04 unable to start/stop/restart using systemctl

I have an installation of XtraDB 5.7 on Ubuntu 18.04 with a non-standard data directory (/opt/data/mysql) set in /etc/my.cnf. The mysqld service is running, but I’m unable to start, stop, or restart it using any standard means (service mysql stop, systemctl stop mysql, etc.). It appears the init script is looking for the pid file in the wrong location (/var/run/mysqld/mysqld.pid instead of /opt/data/mysql/mysqld.pid). There isn’t a cluster for this node to be a member of yet, and this node is currently being used as a standard replication slave.Is there some part of installation/configuration I’ve missed?

Starting MySQL (Percona XtraDB Cluster) database server mysqld
* The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
...fail!

I can access the running instance via the client, but only if I specify the path to the socket. If I don’t specify the socket path, the client tries to connect to /var/run/mysqld/mysqld.sock instead of /opt/data/mysql/mysql.sock.

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Running processes:

root 1141 0.0 0.0 4628 1760 ? S Aug02 0:00 /bin/sh /usr/bin/mysqld_safe
mysql 1684 12.0 79.1 20044196 12628240 ? Sl Aug02 634:01 /usr/sbin/mysqld --basedir=/usr --datadir=/opt/data/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/opt/data/mysql/mysqld.log --pid-file=/opt/data/mysql/mysqld.pid --socket=/opt/data/mysql/mysql.sock --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1

/etc/my.cnf:


[mysqld]
datadir=/opt/data/mysql
tmpdir=/opt/data/tmp
socket=/opt/data/mysql/mysql.sock
pid-file=/opt/data/mysql/mysqld.pid
slow_query_log_file = /opt/data/mysql/slow_queries.log
server-id=5

[mysqld_safe]
log-error=/opt/data/mysql/mysqld.log
pid-file=/opt/data/mysql/mysqld.pid

[client]
socket=/opt/data/mysql/mysql.sock