Difference between revisions of "Boinccmd tool"
(copying from BOINC User Manual wiki) |
(No difference)
|
Revision as of 14:36, 5 September 2016
The BOINC command tool (boinccmd) provides a command-line interface to a running BOINC client (local or remote). This provides an alternative to the BOINC Manager, e.g. on systems with no graphics display.
The usage of boinccmd is:
boinccmd [--host hostname] [--passwd passwd] command
If you run boinccmd in the same directory as the BOINC client, you don't need to supply either a host name or a password.
Otherwise you need to supply (as password) the string stored in the file
gui_rpc_auth.cfg in the client's data directory.
If you run boinccmd remotely you also need to
configure the client to accept remote control.
hostname can be a domain name, an IPv4 address, or an IPv6 address. If the client uses a non-default GUI RPC port, you can specify it as hostname:port, IPv4_addr:port, or [IPv6_addr]:port.
If you use the bash shell, you may find this command completion script useful.
Account query and attach
- --lookup_account URL email password
- Look up account and print account key. Template:New in (see Old lookup_account for instructions on older versions)
- --create_account URL email password name
- Create account with the given email address, password, and user name
- --project_attach URL account_key
- Attach to an account
- --join_acct_mgr URL name password
- Attach to an account manager (or do RPC if already attached). Template:New in (use --acct_mgr_rpc in versions older than 5.10).
- --quit_acct_mgr
- Detach from the current account manager. Template:New in
State queries
- --get_cc_status
- Show CPU/GPU/network run modes and network connection status (version 6.12+)
- --get_state
- Show complete client state
- --get_tasks
- Show tasks
- --get_simple_gui_info
- Show projects and active tasks
- --get_file_transfers
- Show file transfers
- --get_project_status
- Show status of all projects
- --get_project_urls
- List URLs of attached projects, one per line
- --get_disk_usage
- Show disk usage by project
- --get_proxy_settings
- Get proxy settings
- --get_messages seqno
- Show messages with sequence numbers beyond the given seqno
- --get_host_info
- Show host info
- --version, -V
- Show core client version
Control operations
- --task URL task_name operation {--window_station ws} {--desktop dt} {--display dp}
- Do operation on a task, identified by the project master URL and the task name. operations:
- suspend: temporarily stop work on task
- resume: allow work on task
- abort: permanently stop work on task
- graphics_window: open graphics in a window. The optional desktop/window_station (Windows) or display (X11) arguments specify the display.
- graphics_fullscreen: open graphics fullscreen
- --project URL operation
- Do operation on a project, identified by its master URL. Operations:
- reset: delete current work and get more;
- detach: delete current work and don't get more;
- update: contact scheduling server;
- suspend: stop work for project;
- resume: resume work for project;
- nomorework: finish current work but don't get more;
- allowmorework: undo nomorework
- detach_when_done: detach project
- --file_transfer URL filename {retry | abort}
- Do operation on a file transfer
- --set_run_mode {always | auto | never} [ duration ]
- Set run mode.
- always: do CPU work always
- auto: do work only when allowed by preferences
- never: don't do work
If duration is zero or absent, this mode is permanent. Otherwise, after 'duration' seconds elapse, revert to last permanent mode.
- --set_gpu_mode {always | auto | never} [ duration ]
- Set GPU mode. Like set_run_mode but applies to GPU computation.
- --set_network_mode {always | auto | never} [ duration ]
- Set network mode. Like set_run_mode but applies to network transfers
- --set_proxy_settings http_server_name http_server_port http_user_name http_user_passwd socks_server_name socks_server_port socks_version socks5_user_name socks5_user_passwd
- Set proxy settings (all fields are mandatory). Template:New in (exists but doesn't work before 6.6.12).
- --run_benchmarks
- Run CPU benchmarks
- --set_screensaver_mode on|off blank_time {--desktop desktop} {--window_station window_station} {--display display}
- Tell the core client to start or stop doing fullscreen graphics, and going to black after blank_time seconds. The optional arguments specify which desktop/windows_station (Windows) or display (X11) to use.
- --read_global_prefs_override
- Tell the core client to read the [PrefsOverride global_prefs_override.xml] file, and incorporate any global preferences indicated there.
- --quit
- Tell the core client to quit
- --read_cc_config
- Reread the configuration files, to include any app_config.xml existing in the project folders. (cc_config.xml).
- --set_debts URL1 STD1 LTD1 {URL2 STD2 LTD2 ...}
- Set the short- and long-term debts of one or more projects. Note: if you adjust the debts of a project, the debts of other projects are changed, so if you want to set the debts of multiple projects, do it in a single command. Template:New in
Miscellaneous
- --help, -h
- Show options and commands
Examples
It's not hard to write useful scripts based on boinccmd, as long as you know your way around Unix tools. Here's one to run 'update' on all attached projects on your client:
for url in $(boinccmd --get_project_status | sed -n 's/\s*master URL: //p'); do
boinccmd --project ${url} update;
done
If you have remote RPCs set up on your clients, it's easy to, for example, attach a project on all 50 machines, by looping over a list of IPs instead of a list of projects:
for num in $(seq 2 50); do
boinccmd --host 192.168.42.${num} --passwd 1234 \
--project_attach http://project_url/ a84dc0bec631cbf81e25e6e7cd9ca826;
done;
That will connect to the machines 192.168.42.2 - 192.168.42.50 using the RPC password '1234' and make them attach to http://project_url/ with the specified account key.