**cyr_withlock_run** ******************** is used to run system command with a lock held Warning: This command runs as the Cyrus user, so if you need to call something as root, the cyrus user may need sudo privileges. Synopsis ======== **cyr_withlock_run** [ **-C** *config-file* ] [ **-u** *userid* ] cmd args... Description =========== **cyr_withlock_run** will run the command and arguments provided on the command line, either locking the entire server, or a particular user, so no changes can be made to it while this command is running. WARNING: since this takes an exclusive lock, it will deadlock if the command tries to connect to Cyrus via IMAP/JMAP/etc and run commands that take exclusive locks. You can run cyrus commandline tools so long as the environment is passed through. It is most useful for running an external filesystem snapshot command, which can be run safely, knowing that files aren't in a partial state. **cyr_withlock_run** reads its configuration options out of the imapd.conf(5) file unless specified otherwise by **-C**. Options ======= -C config-file Use the specified configuration file *config-file* rather than the default imapd.conf(5). -u, --user Lock just the specified userid rather than the global lock. NOTE: if you run for the global lock, then your server must have the *global_lock* config option set, or this command will fail with an error as it can't get a guaranteed lock. Examples ======== **cyr_withlock_run** sleep 300 Pause all writes on the server for 300 seconds (stops any writes from getting locks) Files ===== /etc/imapd.conf Environment =========== Sets the *CYRUS_HAVELOCK_GLOBAL* or *CYRUS_HAVELOCK_USER* environment variables, to tell any called cyrus command that this lock is already held. See Also ======== imapd.conf(5)