Estoy ejecutando Ubuntu 16.04 en una vieja computadora portátil HP
He instalado algún software para crear un pequeño servidor plex casero. ¡He instalado sonarr, radarr, diluvio, chaqueta, etc., etc. y todos se inician automáticamente al inicio!
Hace un par de días decidí instalar rclone también y he creado (gracias a un proyecto de GitHub) un par de carpetas que deben montarse en cada inicio iniciando un script (lo inicio a través de la escritura de terminal sudo ~/bin/check.mount
). Sonarr y Radarr están configurados para descargar cosas mediante diluvio a una carpeta temporal y luego exportarlas a una de estas dos carpetas montadas.
El problema es que cuando ejecuto manualmente el script Sonarr / Radarr ya está en funcionamiento y no puede encontrar sus carpetas raíz, por lo que me da un error.
Lo que me gustaría hacer es crear un mountgdrive.service (servicio, o lo que sea necesario) para iniciar automáticamente el script check.mount y, si eso no es suficiente, insertar un retraso en sonarr.service y radarr.service. ¿Es eso posible?
Escribí esto con sudo nano /etc/systemd/system/mountgdrive.service
[Unit]
Description=MountSmokeScreen
After=network.target
[Service]
Type=oneshot
ExecStart=/home/samsepioldoloresh4ze/bin/check.mount
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
y agregado a sonarr.service y radarr.service mountgdrive.service
en el After=
bit, como este
[Unit]
Description=Sonarr
After=syslog.target network.target mountgdrive.service
[Service]
User=samsepioldoresh4ze
etcetc
....
¡Pero no está funcionando! Sonarr y Radarr comienzan normalmente, ¡pero las unidades no están montadas! ¿Qué estoy haciendo mal?
Además, rtcwake no funciona en mi computadora portátil, ¡creo que es un problema del núcleo? ¿Hay alguna manera de arreglar eso?
sonarr.service
yradarr.service
que se ejecutará despuésmountgdrive.service
es en servicio?mountgdrive.service
funciona pero no hace nada (no se monta las unidades), y luegosonarr.service
yradarr.service
ejecutar normalmente debido a ubuntu ejecutadosmountgdrive.service
.mount
unidades . Si todo lo quemountgdrive.service
está haciendo es montar un directorio o similar, puede cambiarlo a un.mount
servicio. Como lo hace más confiable, especialmente porque tiene dependencias de él.Respuestas:
La razón por la que tiene este problema es porque está usando
After=
mientras también necesitaRequires=
oWants=
.Hay 3 propiedades principales para administrar dependencias. Trataré de explicar brevemente la diferencia, pero puede encontrar más detalles en [Unidad] Sección Opciones | freedesktop.org
After=
Esta opción solo establece el orden de las unidades, no garantiza que el servicio haya terminado de iniciarse.
Wants=
Esta opción permite que su unidad se inicie solo después de que otra unidad haya terminado de iniciarse. (No importa si comenzó con éxito o no)
Requires=
Wants=
Sin embargo, al igual que esto, su unidad se iniciará solo después de que las dependencias se hayan iniciado correctamente.También puede usar el inverso de cada una de esas opciones.
After=
está invertido porBefore=
Wants=
está invertido porWantedBy=
Requires=
está invertido porRequiredBy=
Para solucionar su problema, debe cambiar su servicio de montaje a:
O puede agregar
Wants=mountgdrive.service
a las unidadessonarr.service
yradarr.service
.Puede hacerlo sin modificar los archivos predeterminados ejecutando lo siguiente (debe hacer lo mismo para
radarr.service
):E inserte lo siguiente:
Nota: Puede reemplazar
Wants=
conRequires
oWantedBy=
conRequiredBy=
si no desea que los dos servicios se inicien simountgdrive.service
falla (aunqueWants=
generalmente es suficiente e incluso se recomienda en los documentos).EDITAR: Las opciones
WantedBy
yRequiredBy
solo se pueden usar en la[Install]
sección. (Gracias @ Yankee )fuente
Wants=
yWantedBy=
definitivamente los usaré !! Sin embargo, recibo este error cuando reinicio el portátil i.imgur.com/a3LE3G9.pngCan't open /.config/SmokeScreen/smokescreen.conf
. Quizás tengas "~ / .config / ..." en tu secuencia de comandos. Debe reemplazar la tilde (~
) con la ruta completa, es decir/home/you_user_name/.config/....
(o usar rutas relativas a su secuencia de comandos)$HOME
no está disponible en el momento del arranque, porque todavía no hay un usuario conectado.WantedBy=
estar en la[Unit]
sección? Pensé que solo podía entrar[Install]
.