I have a python script that I would like to run in a Freenas jail. It works without the service daemon, but I would like to start it as a service. I have created the following service script /etc/rc.d/attendance
#!/bin/sh
# PROVIDE: attendance
# REQUIRE: DAEMON
# KEYWORD: shutdown
. /etc/rc.subr
name=attendance
rcvar=attendance_enable
load_rc_config $name
: ${attendance_enable="NO"}
pidfile="/var/run/${name}.pid"
command="/root/Zkteco/app.py"
command_interpreter=/usr/local/bin/python
run_rc_command "$1"
I have also added attendance_enable="YES" under /etc/rc.conf
When I run, service attendance start I recieve
Starting attendance
limits: /root/Zkteco/app.py: No such file or directory
/etc/rc.d/attendance: WARNING: failed to start attendance
Event though the directory exists, I tried moving it from /etc/rc.d/attendance to /usr/local/etc/rc.d/attendance and it seems to work, but it never goes as a background process either and I have to CTRL+C to stop it.
Any recommendation? The script is a webapp using fastapi and uvicorn, doest it have anything to do with it? How can I see the logs of the service error trying to start.
Thing I've tried
I created a binary with pyinstaller --onefile from the script. And changed
#!/bin/sh
.
.
.
command="/usr/local/bin/app"
run_rc_command "$1
This change made the service start but again, it never goes to background.