Pregunta: ¿Puedo iniciar un proceso con systemd y asignar a ese proceso un directorio de trabajo de mi elección?
Tengo un servicio con el que quiero comenzar systemd. Cuando se inicia ese servicio, quiero poder asignarle un directorio de trabajo actual. Sé cómo hacer esto si estaba usando init, pero estoy teniendo problemas systemd.
Esto es lo que he estado tratando de hacer funcionar.
Mi servicio
Creé una utilidad simple ("listdir"), escrita en Python y colocada en /opt/bin/listdir:
#! /usr/bin/python
import os
print 'Current working directory: %s' % (os.getcwd())
Mi archivo de configuración
Luego creé un listdir.servicearchivo systemdy lo coloqué aquí /lib/systemd/system/listdir.service:
[Unit]
Description=Test of listing CWD.
[Service]
ExecStartPre=chdir /usr/local
ExecStart=/opt/bin/listdir
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
Problema
Cuando ejecuto systemctl start listdirmi registro del sistema registra el directorio raíz ("/") como el directorio de trabajo actual. Por supuesto, lo esperaba /usr/localcomo el directorio actual, ya que pensé ExecStartPreque cambiaría los directorios antes de comenzar el proceso.
Obviamente, estoy imaginando que systemdfuncionaría algo así como un script de shell (aunque sé que no es un script de shell). ¿Alguien puede darme una idea de lo que debería estar haciendo? ¿Es posible establecer un directorio de trabajo usando systemd? ¡Gracias!
Editar: el registro de mi sistema informa un error. (Acabo de notar.)
Executable path is not absolute, ignoring: chdir /usr/local
Entonces, chdires un comando de shell, y no un ejecutable en sí mismo. Bueno. ¿Pero todavía hay alguna forma de cambiar los directorios usando systemd?

[Service]sección?