mirror of
https://github.com/opnsense/docs
synced 2024-11-05 06:00:36 +00:00
bf004ac276
sponsored by : Modirum (https://www.modirum.com/)
80 lines
2.6 KiB
ReStructuredText
80 lines
2.6 KiB
ReStructuredText
========================
|
|
Bootup / autorun options
|
|
========================
|
|
|
|
-------
|
|
syshook
|
|
-------
|
|
|
|
OPNsense offers an easy method to plug in custom scripts during boot stages and assorted system events.
|
|
|
|
Syshook scripts should be installed in:
|
|
|
|
::
|
|
|
|
/usr/local/etc/rc.syshook.d/<subdir>/
|
|
|
|
They can contain any executable file (e.g. shell scripts) in the following subdirectories:
|
|
|
|
- backup
|
|
- scripts used for periodic backup and restore
|
|
- carp
|
|
- scripts used for CARP MASTER / BACKUP events
|
|
- config
|
|
- scripts used when a configuration change took place (:code:`config.xml` changed).
|
|
|
|
.. Note::
|
|
This event is intended to be atomic for every changed revision, it's triggered using configd :code:`system event config_changed`
|
|
and is loosely coupled via a :code:`syslog-ng` handler within the standard :code:`Config->save()` method.
|
|
The syshook event contains a pointer to the backup file in question (e.g. :code:`/conf/backup/config-1601651332.5394.xml`),
|
|
so the consumer (script) knows which revision to process.
|
|
|
|
.. Tip::
|
|
Try to keep custom config handlers as small and efficient as possible since the number of triggered events can grow rapidly.
|
|
|
|
- early
|
|
- start script before system network startup
|
|
- monitor
|
|
- scripts handling gateway monitoring events
|
|
- start
|
|
- start script after system network startup
|
|
- stop
|
|
- stop script before normal system shutdown
|
|
- update
|
|
- update script after core package update
|
|
|
|
File names can use a number prefix "XX-" to retain a particular order. "20-" is typically used for core scripts, while "50-" is used for plugins.
|
|
|
|
Example (vmware guestd start, filename /usr/local/etc/rc.syshook.d/early/50-vmware)
|
|
|
|
::
|
|
|
|
#!/bin/sh
|
|
|
|
export vmware_guest_vmblock_enable="YES"
|
|
export vmware_guest_vmhgfs_enable="YES"
|
|
export vmware_guest_vmmemctl_enable="YES"
|
|
export vmware_guest_vmxnet_enable="YES"
|
|
|
|
/usr/local/etc/rc.d/vmware-kmod start
|
|
|
|
Do not forget to set executable permissions on your syshook files.
|
|
|
|
-----
|
|
rc(8)
|
|
-----
|
|
|
|
Part of the bootup process of OPNsense is probing the available rc(8) configuration files in */etc/rc.conf.d/*, when a daemon is enabled, the system will call the regular rc(8) start command.
|
|
|
|
In case the daemon needs some extra preparation, an additional "bootup" script can be provided, which will be run before executing normal "start".
|
|
|
|
Example (from a configured squid proxy server using */etc/rc.conf.d/squid*):
|
|
|
|
::
|
|
|
|
squid_enable=YES
|
|
squid_opnsense_bootup_run="/usr/local/opnsense/scripts/proxy/setup.sh"
|
|
|
|
|
|
The configd template system can be used to generate the necessary configuration file(s).
|