Both sides previous revisionPrevious revisionNext revision | Previous revision |
config:semfiles [2011/10/28 15:58] – Added shutdown semfile description. digitalman | config:semfiles [2024/01/12 17:25] (current) – [QWKnet Timed-event Semaphore Files] Add pause semaphore file details digital man |
---|
====== Semaphore Files ====== | ====== Semaphore Files ====== |
| |
Synchronet supports a variety of semaphore files which can be used to externally trigger operations of the various servers and services. | Synchronet supports a variety of semaphore files which can be used to externally-trigger internal-operations of the various servers and services. |
| |
The contents of a sempahore file are not relavent; the mere existence or updated date/time stamp of the file is enough to trigger the operation. | The //contents// of semaphore files are not relevant; the mere existence or updated date/time stamp of the file is enough to trigger the coresponding operation. |
| |
Semaphore file can be create or their date/time stamp updated with simple command-line operations. | Semaphore files can be created or their date/time stamp updated with simple command-line operations. For example: |
| |
Windows: | on Windows: |
C:\>echo. > \sbbs\data\dothing.now | C:\>echo. > \sbbs\data\dothing.now |
| |
UNIX: | on UNIX: |
# touch /sbbs/data/dothing.now | $ touch /sbbs/data/dothing.now |
| |
| |
===== Existence Semfiles ===== | ===== Existence Semaphore Files ===== |
| |
These semaphore files just need to be merely created to trigger the operation and the semaphore file will be automatically deleted: | Existence semaphore files just need to be merely created to trigger the corresponding operation and the semaphore file will be automatically deleted: |
| |
==== Event Semfiles ==== | ==== Sysop Available for Chat ==== |
| If the file ''[[dir:ctrl]]/sysavail.chat'' exists, then the sysop availability for chat with users can be indicated and users will be allowed to page the local sysop to chat. |
| ==== Event Semaphore Files ==== |
| |
Events that have been configured in [[util:SCFG]]->External Programs->Timed Events can be externally triggered by creating the file ''[[dir:data]]///<event>//.now'', where ''//<event>//'' is the "Internal Code" if the timed event. Events are executed (serially) by the [[server:terminal|Terminal Server]] Event Thread. | Events that have been configured in [[util:SCFG]]->External Programs->Timed Events can be externally triggered by creating the file ''[[dir:data]]///<event>//.now'', where ''//<event>//'' is the "Internal Code" of the corresponding timed event. Events are executed (serially, by default) by the [[server:terminal|Terminal Server]] //Event Thread//. |
| |
Example (forcing execution of the FidoNet import event): | Example (forcing execution of the FidoNet import event): |
| |
# touch /sbbs/data/fidoin.now | $ touch /sbbs/data/fidoin.now |
| |
==== QWK Pack Semfiles ==== | ==== QWK Pack Semaphore Files ==== |
| |
QWK message packets can be created for specific user accounts by creating the file ''[[dir:data]]/pack//<user>//.now'' where ''//<user>//'' is the number of the user account to to create the packet for. | QWK message packets can be created for specific user accounts by creating the file ''[[dir:data]]/pack//<user>//.now'' where ''//<user>//'' is the number of the user account to to create the packet for. |
Example (forcing the creation of a QWK packet for user #1): | Example (forcing the creation of a QWK packet for user #1): |
| |
# touch /sbbs/data/pack0001.now | $ touch /sbbs/data/pack0001.now |
| |
QWK packets are created in the ''[[dir:data]]/file'' directory with a filename of ''//<user>//.qwk''. If a QWK packet already exists for the user, it will be opened and appended with any new messages. | QWK packets are created in the ''[[dir:data]]/file'' directory with a filename of ''//<user>//.qwk''. If a QWK packet already exists for the user, it will be opened and appended with any new messages. |
| |
==== QWK Pre-pack Semfile ==== | ==== QWK Pre-pack Semaphore File ==== |
| |
The QWK pre-pack event (which runs automatically once a day) can be forced by creating the file ''[[dir:data]]/prepack.now''. | The QWK pre-pack event (which runs automatically once a day) can be forced by creating the file ''[[dir:data]]/prepack.now''. |
| |
==== QWKnet Call-out Semfile ==== | ==== QWKnet Call-out Semaphore File ==== |
| |
QWK Network hub call-out events can be forced to execute by creating the file ''[[dir:data]]/qnet///<hub-id>//.qwk'', where ''//<hub-id//'' is the QWK-ID of the QWKnet Hub configured in [[util:SCFG]]->Networks->QWK. | QWK Network hub call-out events can be forced to execute by creating the file ''[[dir:data]]/qnet///<hub-id>//.qwk'', where ''//<hub-id//'' is the QWK-ID of the QWKnet Hub configured in [[util:SCFG]]->Networks->QWK. |
Example (forcing QWK call-out to QWKnet hub //VERT//): | Example (forcing QWK call-out to QWKnet hub //VERT//): |
| |
# touch /sbbs/data/qnet/vert.now | $ touch /sbbs/data/qnet/vert.now |
| |
| ==== QWKnet Timed-event Semaphore Files ==== |
| After receiving and processing a QWKnet ''.QWK'' or ''.REP'' file, Synchronet will //touch// the ''[[dir:data]]/**qnet-qwk**.now'' or ''[[dir:data]]/**qnet-rep**.now'' files to trigger timed events of those names, if they exist, to execute. |
| |
===== Timestamp Semfiles ===== | ==== Pause Server Semaphore File ==== |
| The existence of the file ''[[dir:ctrl]]/pause'' (or a supported service/host variant) will cause that server to stop accepting incoming client connections. Any existing clients/connections will continued to be service while the server is paused. Removing the file will "resume" the server. |
| ===== Timestamp Semaphore Files ===== |
| |
These semaphore files are not deleted when the operation is triggered, so the date/time stamp of the file must be updated (i.e. the file must be "touched") to trigger the operation again: | Timestamp semaphore files are not deleted when the operation is triggered, so the date/time stamp of the file must be updated (i.e. the file must be "touched") to trigger the operation again: |
| |
==== Recycle Semfiles ==== | On a multi-host BBS, the servers and services on a specific host can be signaled by "touching" the file ''[[dir:ctrl]]/<semfile>.//<hostname>//'' or ''[[dir:ctrl]]/<semfile>.//<host.domainname>//'' instead. |
| |
Synchronet servers and services can be forced to terminate all threads, close sockets, and reload their configuration files by "touching" the file ''[[dir:ctrl]]/recycle''. | A specific server or service may be signaled by "touching" the file ''[[dir:ctrl]]/<semfile>.//<service>//'' instead, where ''//<service>//'' is one of: ''term, ftp, mail, web, or services''. |
| |
On a multi-host BBS, the servers and services on a specific host can be recycled by "touching" the file ''[[dir:ctrl]]/recycle.//<hostname>//'' or ''[[dir:ctrl]]/recycle.//<host.domainname>//'' instead. | ==== Recycle Semaphore Files ==== |
| |
A specific server or service may be recycled by "touching" the file ''[[dir:ctrl]]/recycle.//<service>//'' instead, where ''//<service>//'' is one of: ''telnet, ftp, mail, web, or services''. | Synchronet servers and services can be forced to terminate all threads, close sockets, and reload their configuration files by "touching" the file ''[[dir:ctrl]]/recycle''. |
| |
Servers or services that have the ''NO_RECYCLE'' option flag set (in the ''[[sbbs.ini]]'' file) will **not** be recycled by external touching of the //recycle// semaphore file. | Servers or services that have the ''NO_RECYCLE'' option flag set (in the ''[[sbbs.ini]]'' file) will **not** be recycled by external touching of the //recycle// semaphore file. |
| |
==== Shutdown Semfiles ==== | :!:\\ |
| If touching the ''recycle'' semaphore file does not trigger an ''sbbs'' server/services recycle (e.g. on Linux), see [[faq:nix#recycle]] for details on why that may be. |
| |
| ==== Shutdown Semaphore Files ==== |
| |
Synchronet servers and services can be forced to terminate (shutdown) by "touching" the file ''[[dir:ctrl]]/shutdown''. | Synchronet servers and services can be forced to terminate (shutdown) by "touching" the file ''[[dir:ctrl]]/shutdown''. |
| |
On a multi-host BBS, the servers and services on a specific host can be recycled by "touching" the file ''[[dir:ctrl]]/shutdown.//<hostname>//'' or ''[[dir:ctrl]]/shutdown.//<host.domainname>//'' instead. | ==== Clear Failed Login List Semaphore Files ==== |
| |
A specific server or service may be recycled by "touching" the file ''[[dir:ctrl]]/shutdown.//<service>//'' instead, where ''//<service>//'' is one of: ''telnet, ftp, mail, web, or services''. | |
| |
| A sysop can clear the in-memory //Failed Login List// (temporary IP address ban list) by "touching" the file ''[[dir:ctrl]]/clear''. |
| |
===== See Also ===== | ===== See Also ===== |
* [[:config:|Configuration]] | * [[:config:|Configuration]] |
| |
{{tag>}} | |
| {{tag>configuration semaphore semfile messaging event}} |
| |