Temat: Skrypty startowe PROCD w LEDE
Cześć,
czy jest gdzieś coś więcej na ten temat?
Informacje na openwrt są skąpe, na LEDE to WIP ![]()
Usiłuję uruchomić przez procd syncthing na LEDE x86, syncthing uruchamia 2 procesy: jeden właściwy, drugi monitorujący.
Skrypt startowy wygląda tak:
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
SYNCTHING_BIN="/bin/syncthing"
SYNCTHING_HOME="/home/piconas"
start_service() {
procd_open_instance "PicoNAS"
procd_set_param env HOME="/home/piconas"
procd_set_param command ${SYNCTHING_BIN}
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_set_param user piconas
procd_append_param command "-logfile=${SYNCTHING_HOME}/piconas.log"
procd_close_instance
}Oczywiście mam utworzonego użytkownika i grupę piconas, katalog domowy założony.
Proces startuje poprawnie z uprawnieniami użytkownika piconas, log tworzy się, wszystko działa jak powinno.
Tylko wywołanie /etc/init.d/piconas stop zatrzymuje proces nadzorcy, proces główny nadal działa, porty 22000 (transmisyjny) i 8384 GUI) są wciąż otwarte. Ponowny start nie udaje się:
logread:
Sun Sep 11 11:36:44 2016 daemon.info syncthing[2676]: [7PZ3W] 09:36:44 FATAL: Cannot open database: resource temporarily unavailable - Is another copy of Syncthing already running?
Sun Sep 11 11:36:44 2016 daemon.info syncthing[2676]: [monitor] 09:36:44 INFO: Syncthing exited: exit status 1
Sun Sep 11 11:36:45 2016 daemon.info syncthing[2676]: [monitor] 09:36:45 WARNING: 4 restarts in 6.223146456s; not retrying furtherSprawę rozwiązuje dodanie do skryptu sekcji:
stop_service() {
kill -15 `pidof syncthing`
}Ale nie jest to zbyt elegenckie ![]()
Wygląda na to, że polecenia sekcji stop_service() wykonują się jako przygotowanie do działania PROCD, więc kill zatrzymiuje oba procesy i PROCD nie ma już nic do roboty.
Włączenie debugowania niewiele daje ![]()
Gimbus