Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    TinyDNS service not able to start in v2.2.3-RELEASE

    Scheduled Pinned Locked Moved pfSense Packages
    30 Posts 4 Posters 5.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      Itwerx
      last edited by

      Dagnabbit, you're tempting me to give it another go!  The monitoring and failover is a big plus for us as well.  :/

      1 Reply Last reply Reply Quote 0
      • D
        doktornotor Banned
        last edited by

        https://github.com/pfsense/pfsense-packages/pull/909

        pukes on PBI.

        1 Reply Last reply Reply Quote 0
        • I
          Itwerx
          last edited by

          https://github.com/pfsense/pfsense-packages/pull/909

          Did you have a chance to give it any review or was the github just to get it in there for further development…?

          1 Reply Last reply Reply Quote 0
          • D
            doktornotor Banned
            last edited by

            @Itwerx:

            https://github.com/pfsense/pfsense-packages/pull/909

            Did you have a chance to give it any review or was the github just to get it in there for further development…?

            It's been "sitting" there for 2 days. Give it some time to get reviewed and merged…

            1 Reply Last reply Reply Quote 0
            • I
              Itwerx
              last edited by

              It's been "sitting" there for 2 days. Give it some time to get reviewed and merged…

              Yes, of course, wasn't impugning the process.  Just figured if it had been given further review and was considered a valid patch, (not still missing paths or whatever), then I would go ahead and test it out and report back my results.  (Conversely if it's known to be incomplete than I'd wait.)  - Thanks!

              1 Reply Last reply Reply Quote 0
              • D
                doktornotor Banned
                last edited by

                I don't plan on changing anything there unless required. If you want to test it, probably the best way is to paste relevant parts into http(s)://<pfs_ip_or_fqdn>/exec.php

                
                	$pf_version=substr(trim(file_get_contents("/etc/version")),0,3);
                	if ($pf_version == "2.2") {
                		$svscan_path = "/usr/pbi/djbdns-" . php_uname("m") . "/local/bin/svscan";
                		$svc_path = "/usr/pbi/djbdns-" . php_uname("m") . "/local/bin/svc";
                		$tinydns_path = "/usr/pbi/djbdns-" . php_uname("m") . "/local/bin";
                	} else if ($pf_version == "2.1") {
                		$svscan_path = "/usr/pbi/djbdns-" . php_uname("m") . "/bin/svscan";
                		$svc_path = "/usr/pbi/djbdns-" . php_uname("m") . "/bin/svc";
                		$tinydns_path = "/usr/pbi/djbdns-" . php_uname("m") . "/bin";
                	} else {
                		$svscan_path = "/usr/local/bin/svscan";
                		$svc_path = "/usr/local/bin/svc";
                		$tinydns_path = "/usr/local/bin";
                	}
                	$svscan = <<<eod<br>#!/bin/sh
                # PROVIDE: svscan
                # REQUIRE: LOGIN
                # KEYWORD: FreeBSD
                . /etc/rc.subr
                name="svscan"
                rcvar="\${name}_enable"
                command="{$svscan_path}"
                svscan_enable=\${svscan_enable-"YES"}
                svscan_servicedir=\${svscan_servicedir-"{$g['varrun_path']}/service"}
                logdir="/var/log/svscan"
                start_cmd="svscan_start"
                stop_postcmd="svscan_stop_post"
                load_rc_config \$name
                required_dirs="\${svscan_servicedir}"
                svscan_start () {
                        echo "Starting svscan."
                        mkdir -p \$logdir
                        /usr/bin/env \
                        PATH={$tinydns_path}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
                        /usr/sbin/daemon -f /bin/sh -c "\$command \$svscan_servicedir 2>&1 | /usr/local/bin/multilog t \$logdir" > /dev/null
                EOD;
                if ($enableipmonitoring) {
                	$svscan .= <<<eod<br>/usr/local/bin/minicron {$refreshinterval} {$g['varrun_path']}/ping_hosts.pid "/usr/local/bin/ping_hosts.sh"
                EOD;
                }
                $svscan .= <<<eod<br>}
                svscan_stop_post () {
                        echo "Stopping svscan."
                        find -L "\$svscan_servicedir" -mindepth 1 -maxdepth 2 -type d \( \! -path "\$svscan_servicedir/*/*" -or -name 'log' \) -print0 | xargs -0 {$svc_path} -dx
                		/bin/pkill -F /var/run/ping_hosts.pid
                }
                run_rc_command "\$1"
                EOD;
                
                	fwrite($fd, $svscan);
                	fclose($fd);</eod<br></eod<br></eod<br> 
                

                After that, make a backup and replace /usr/local/pkg/tinydns.inc with the fixed one.</pfs_ip_or_fqdn>

                1 Reply Last reply Reply Quote 0
                • E
                  ecce
                  last edited by

                  Thank you, Doktor!

                  For sending a patch in the right direction, and for posting a How-To how we can try it.

                  Worked out with minor additions in your above posted code:

                  • an additional line break here:
                         /usr/local/bin/minicron {$refreshinterval} {$g['varrun_path']}/ping_hosts.pid "/usr/local/bin/ping_hosts.sh"
                  EOD;
                  }
                  $svscan .= <<<eod<br>--->>>line break here<<<---
                  }
                  svscan_stop_post () {</eod<br>
                  
                  • an additional line before fwrite (had to instant-teach myself a little bit php for this :)):
                  $fd=fopen("/usr/local/etc/rc.d/svscan.sh","w");
                  
                  • and after that edit /usr/local/etc/rc.d/svscan.sh and remove all ^M chars at the end of the line. (yes, I know…windoze)

                  Again, thanks!
                  Marc

                  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                                                murphy's rule: "there is always one error left."
                  ~~(¸¸ ¸¸ºº> ___________________________________________________.·'´¯)~
                  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

                  1 Reply Last reply Reply Quote 0
                  • D
                    doktornotor Banned
                    last edited by

                    @ecce:

                    and after that edit /usr/local/etc/rc.d/svscan.sh and remove all ^M chars at the end of the line. (yes, I know…windoze)

                    
                    sed -i "s/.$//g" /some/file
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • I
                      Itwerx
                      last edited by

                      Am I correct in assuming this snippet of code is sufficiently self-contained that it can go pretty much anywhere in exec.php, (not literally of course, being careful not to break existing syntax)…?

                      1 Reply Last reply Reply Quote 0
                      • D
                        doktornotor Banned
                        last edited by

                        PR merged, no longer needed to mess with anything manually.

                        1 Reply Last reply Reply Quote 0
                        • I
                          Itwerx
                          last edited by

                          Thanks Doc, that was fast!

                          I did a reinstall on the package, and while I don't see any of the new svscan stuff in the exec.php I am happy to report that it  seems to be running properly now.  Woohoo!  Much rockage!  :P

                          1 Reply Last reply Reply Quote 0
                          • E
                            ecce
                            last edited by

                            Yes, can confirm that - installed it on a system which didn't have anything to do with tinydns before, configured basic settings, started svscan and that was it!

                            Yay!
                            ;D

                            ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                                                          murphy's rule: "there is always one error left."
                            ~~(¸¸ ¸¸ºº> ___________________________________________________.·'´¯)~
                            ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

                            1 Reply Last reply Reply Quote 0
                            • D
                              doktornotor Banned
                              last edited by

                              Thanks for testing. ;)

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.