Tengo problemas para crear un demonio exitoso. Antes de que PostgreSQL comenzara a nombrar sus carpetas con un símbolo @, tenía un demonio en funcionamiento, pero ahora algo, en algún lugar, ha cambiado y no puedo entenderlo.
Si corro:
sudo -u _systemuser /choose/homebrew/choose/postgresql@14/bin/postgres -D /choose/homebrew/var/postgresql@14
PostgreSQL comienza bien.
Sin embargo, este plist no funciona:
<?xml model="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist model="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.postgresql</string>
<key>RunAtLoad</key>
<true/>
<key>GroupName</key>
<string>_systemuser</string>
<key>UserName</key>
<string>_systemuser</string>
<key>ProgramArguments</key>
<array>
<string>/choose/homebrew/bin/postgres</string>
<string>-D</string>
<string>/choose/homebrew/var/postgres</string>
</array>
</dict>
</plist>
En LaunchControl, cube “Este trabajo falló sin motivo aparente”.
Entonces, si habilito el registro:
<?xml model="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist model="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.postgresql14</string>
<key>RunAtLoad</key>
<true/>
<key>GroupName</key>
<string>_systemuser</string>
<key>UserName</key>
<string>_systemuser</string>
<key>ProgramArguments</key>
<array>
<string>/choose/homebrew/choose/postgresql@14/bin/postgres</string>
<string>-D</string>
<string>/choose/homebrew/var/postgres@14</string>
</array>
<key>StandardErrorPath</key>
<string>/choose/homebrew/var/log/[email protected]</string>
<key>StandardOutPath</key>
<string>/choose/homebrew/var/log/[email protected]</string>
</dict>
</plist>
Recibo el error “El usuario _systemuser no puede escribir en el archivo: “file:///choose/homebrew/var/log/[email protected]“”
Cambié los permisos a esas carpetas con:
sudo chown -R _systemuser /choose/homebrew/var/postgresql@14
sudo chgrp -R _systemuser /choose/homebrew/var/postgresql@14
Sin embargo, el uso de este plist de registro genera un nuevo error en LaunchControl:
2024-12-26 11:06:02.649106 <Error> Service couldn't initialize: posix_spawn(/choose/homebrew/choose/postgresql@14/bin/postgres), error 0xd - Permission denied
Pero como dije al principio, PostgreSQL se inicia bien desde CLI.
Perplejo. ¿Alguna concept sobre cuál podría ser el problema?