<!-- $Id: Scoreboard.html,v 1.1 2004/11/14 21:03:49 castaglia Exp $ --> <!-- $Source: /cvsroot/proftp/proftpd/doc/howto/Scoreboard.html,v $ --> <html> <head> <title>ProFTPD mini-HOWTO - The ScoreboardFile</title> </head> <body bgcolor=white> <hr> <center><h2><b>ProFTPD and the ScoreboardFile</b></h2></center> <hr> <p> <b>What is the Scoreboard</b><br> The <code>ScoreboardFile</code> is used by <code>proftpd</code> for tracking information for each current FTP session. It is necessary for things like <code>MaxClients</code>, <code>MaxClientsPerUser</code>, <i>etc</i>. The utility programs (<code>ftpwho</code>, <code>ftpcount</code>, <code>ftptop</code>) read the scoreboard and display its information. <p> Here's how <code>proftpd</code> handles its scoreboard: There is a default path that <code>proftpd</code> will use for writing its scoreboard (<code>var/proftpd/proftpd.scoreboard</code>). This default path depends on how you install proftpd (<i>i.e.</i> if you install from source and use the --prefix <code>configure</code> option, the default path will be adjusted to honor your --prefix). However, you can also explicitly tell the daemon what location to use for its scoreboard using the <code>ScoreboardFile</code> configuration directive in your <code>proftpd.conf</code>. When the daemon starts up, it looks to see if there is a scoreboard already there; if there isn't, it makes a new one. <p> The most common error encountered when opening the scoreboard is: <pre> unable to open scoreboard: No such file or directory </pre> This usually means that <code>proftpd</code> is trying to open a <code>ScoreboardFile</code> in a directory that does not exist. Some packages fail to create the needed directory; this will result in the error message above. If you cannot find your <code>ScoreboardFile</code>, you should try explicitly configuring the path to the file to use in your <code>proftpd.conf</code>, using the <code>ScoreboardFile</code> configuration directive, and then obtaining debugging output from your <code>proftpd</code>, to see if the daemon ran into problems using that defined location. <p> <b>Frequently Asked Questions</b><br> <font color=red>Question</font>: Why doesn't <code>proftpd</code> create the needed directories, if they're not there, when opening the scoreboard?<br> <font color=blue>Answer</font>: The short answer is because that is the job of the system administrator, not the application. The long reason is that <code>proftpd</code> does not know the filesystem layout being used, and does not know what sort of permissions should be given to any directories it might need to create for its scoreboard. <p> <font color=red>Question</font>: Can I copy my scoreboard from one server to another?<br> <font color=blue>Answer</font>: No. <code>ScoreboardFile</code>s cannot be copied from server to server; they are specific to that particular installation. <p> In the same fashion, you should not try to place the scoreboard on an NFS filesystem. First, attempting to share the scoreboard is not supported, and will only lead to trouble. Second, NFS does not support file locking, which <code>proftpd</code> requires for handling the scoreboard. <p> <font color=red>Question</font>: Why do I see "scrubbing scoreboard" in my debugging output?<br> <font color=blue>Answer</font>: There is a bad habit among system administrators of using <code>`kill -9'</code> to kill a misbehaving process. Any process that is terminated this way, though, does not have a chance of properly shutting down. Administrators would use <code>`kill -9'</code> on some of <code>proftpd</code>'s session processes, which means that they would not be able to remove themselves from the scoreboard. <code>ftpwho</code> and <code>ftptop</code> would show sessions that no longer existed. <p> The chance of changing this bad habit in system administrators is slim, so <code>proftpd</code> was changed to check the scoreboard periodically. It will scan the entire scoreboard file, and for each scoreboard session listed, it asks the operating system if that session process is still alive. If the answer is no, the entry is removed from the scoreboard. This process is known as "scrubbing". <p> <hr> <i>$Date: 2004/11/14 21:03:49 $</i><br> </body> </html>