MinimServer Forum

Full Version: [Tutorial] Installing MinimServer on FreeNAS or FreeBSD
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7
In this section of code:

Code:
pid="$(cat "${MINIMPIDFILE}" 2>/dev/null)"
if [ -n "$pid" ]; then
    cmdline="$(cat /proc/$pid/cmdline | tr '\0' ' ' 2>/dev/null)"
else
    cmdline=
fi
if [ -z "$cmdline" ]; then
    if [ -s "${OUTFILE}" ]; then
        cat "${OUTFILE}" 1>&2
    else
        echo "Failed to start Minim${WS}" 1>&2
    fi
    exit 1
fi

the startd script is looking for the minimserver.pid file to be non-null and checking whether /proc/$pid/cmdline is also non-null. If the minimserver.pid file is non-null and /proc/$pid/cmdline is null, the "Failed to start" message will be produced.

Does /proc/$pid/cmdline work on BSD? If it doesn't, this would explain the error message.

The other possibility is that the minimserver.pid file is non-null and /proc/$pid/cmdline is null because of some startup sequencing/timing issue. If this is the case, adding a short delay into this check might solve the problem.

I can't check this myself because it is working for me on Linux.
(11-02-2020 08:44)simoncn Wrote: [ -> ]In this section of code:

Code:
pid="$(cat "${MINIMPIDFILE}" 2>/dev/null)"
if [ -n "$pid" ]; then
    cmdline="$(cat /proc/$pid/cmdline | tr '\0' ' ' 2>/dev/null)"
else
    cmdline=
fi
if [ -z "$cmdline" ]; then
    if [ -s "${OUTFILE}" ]; then
        cat "${OUTFILE}" 1>&2
    else
        echo "Failed to start Minim${WS}" 1>&2
    fi
    exit 1
fi

the startd script is looking for the minimserver.pid file to be non-null and checking whether /proc/$pid/cmdline is also non-null. If the minimserver.pid file is non-null and /proc/$pid/cmdline is null, the "Failed to start" message will be produced.

Does /proc/$pid/cmdline work on BSD? If it doesn't, this would explain the error message.

The other possibility is that the minimserver.pid file is non-null and /proc/$pid/cmdline is null because of some startup sequencing/timing issue. If this is the case, adding a short delay into this check might solve the problem.

I can't check this myself because it is working for me on Linux.

There is no procfs mounted by default on FreeBSD. So I wouldn't count on it, although in my jail it is there as part of some dependency. Nor will this work on a mac. Why not check $(uname) and do something like

Code:
ps auxww | grep minim | grep mserver.jar | awk {print $2}

for *BSD and Darwin?
Thanks for confirming the cause of the problem.

This script is part of the Linux version of MinimServer. As I have said previously, the Linux scripts are not intended to support the Mac.

I cannot add BSD-dependent behaviour to these scripts because I have no way to test or support this.

Your suggestion can give a false positive by matching other MinimServer processes. It is necessary to check for a process that has the specific PID in the minimserver.pid file, perhaps using something like:

ps ww -p $pid

and then extracting the command line from the ps output.

I will not be pursuing this any further as the current code is working correctly on Linux
Then just tell users to mount procfs. Add that to prerequisites in instructions. On FreeBSD,

Code:
$ mount -t procfs proc /proc

and/or add it to /etc/fstab if it is not there.
Meanwhile I still have some trouble with my network. minimserver disappears from upnp queries after some time.

I obtained a tool to run ssdp queries and I see this for the minimserver:

Code:
HTTP/1.1 200 OK
SERVER: Posix/200112.0 UPnP/1.1 ohNet/1.0
CACHE-CONTROL: max-age=1800
EXT:
LOCATION: http://192.168.1.5:9791/9efa022f-bcd6-41ed-a223-01abcaf1f139/Upnp/device.xml
BOOTID.UPNP.ORG: 1
CONFIGID.UPNP.ORG: 1
ST: uuid:9efa022f-bcd6-41ed-a223-01abcaf1f139
USN: uuid:9efa022f-bcd6-41ed-a223-01abcaf1f139

So it expires after 30 minutes. Shouldn't ohnet send a new broadcast once in a while? Who sets the max-age=1800? My Oppo BDP-105 sits on the same network behind the same switch and it does not disappear. The player entry is as follows:

Code:
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=1800
DATE: Fri, 28 Feb 2020 04:55:06 GMT
EXT:
LOCATION: http://192.168.1.15:2870/dmr.xml
SERVER: OPPO PLAYER UPnP/1.0 DLNADOC/1.50
ST: urn:schemas-upnp-org:service:AVTransport:1
USN: uuid:140479c0-58f3-1cef-84bf-0022de8b940b::urn:schemas-upnp-org:service:AVTransport:1
MinimServer/ohNet does send an SSDP "alive" notification before the 30 minutes elapses. This is probably being dropped by your router or switch for some reason. The SSDP message you have posted looks like an M-SEARCH response, not an "alive" notification.

Please start another thread if you want to discuss how the UPnP protocol works and how to further investigate what might be happening with your network setup. It seems unlikely that this issue is related to whether MinimServer is runnng on Linux or FreeNAS.
Pages: 1 2 3 4 5 6 7
Reference URL's