Este es el comando gdbus que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
gdbus - Herramienta para trabajar con objetos D-Bus
SINOPSIS
bus introspectiva [--sistema | --sesión | --Dirección dirección] --destino nombre_bus
--objeto-ruta / ruta / a / objeto [--xml] [--recurse] [--solo-propiedades]
bus monitorizar [--sistema | --sesión | --Dirección dirección] --destino nombre_bus
[--ruta-objeto / ruta / a / objeto]
bus llamar [--system | --sesión | --Dirección dirección] --destino nombre_bus
--objeto-ruta / ruta / a / objeto --método org.proyecto.NombreInterfaz.NombreMétodo
[--se acabó el tiempo segundos] ARG1 ARG2 ...
bus emitir [--system | --sesión | --Dirección dirección] --ruta-objeto / ruta / a / objeto
--señal org.proyecto.NombreInterfaz.NombreSeñal [--destino Unique_bus_name] ARG1 ARG2 ...
bus ayuda
DESCRIPCIÓN
bus es una herramienta sencilla para trabajar con objetos D-Bus.
COMANDOS
introspección
Imprime interfaces y valores de propiedad para un objeto remoto. Para que esto funcione, el
propietario del objeto necesita implementar el org.freedesktop.DBus.Introspectable
interfaz. Si el --xml se utiliza la opción, se imprime el XML de introspección devuelto,
de lo contrario, se imprime una bonita representación analizada. los --recurrencia se puede utilizar la opción
para introspectar a los niños (y sus hijos, etc.) y el --sólo-propiedades opción
se puede utilizar para imprimir solo las interfaces con propiedades.
monitorear
Supervisa uno o todos los objetos propiedad del propietario de nombre_bus.
llamar al
Invoca un método en un objeto remoto. Cada argumento para pasar al método debe ser
especificado como serializado GVariante excepto que las cadenas no necesitan comillas explícitas.
Los valores devueltos se imprimen serializados GVariante valores.
emitir
Emite una señal. Cada argumento a incluir en la señal debe especificarse como un
serializado GVariante excepto que las cadenas no necesitan comillas explícitas.
ayuda
Imprime ayuda y salida.
BASH TERMINACIÓN
bus se envía con un script de finalización de bash para completar comandos, destinos, nombres de bus,
rutas de objetos y nombres de interfaces / métodos.
EJEMPLOS
Esto muestra cómo hacer una introspección de un objeto; tenga en cuenta que el valor de cada
se muestra la propiedad:
$ gdbus introspección --sistema \
--dest org.freedesktop.NetworkManager \
--object-path / org / freedesktop / NetworkManager / Devices / 0
node / org / freedesktop / NetworkManager / Devices / 0 {
interfaz org.freedesktop.DBus.Introspectable {
métodos:
Introspectiva (datos de salida);
};
interfaz org.freedesktop.DBus.Properties {
métodos:
Obtener (en la interfaz s,
en s propname,
valor de salida v);
Establecer (en la interfaz s,
en s propname,
en valor v);
GetAll (en la interfaz s,
a cabo un {sv} props);
};
interfaz org.freedesktop.NetworkManager.Device.Wired {
señales:
PropertiesChanged (a {sv} arg_0);
propiedades:
solo lectura b Carrier = false;
solo lectura u Velocidad = 0;
readonly s HwAddress = '00: 1D: 72: 88: BE: 97 ';
};
interfaz org.freedesktop.NetworkManager.Device {
métodos:
Desconectar();
señales:
StateChanged (u arg_0,
eres arg_1,
tuarg_2);
propiedades:
solo lectura u DeviceType = 1;
solo lectura b Gestionado = verdadero;
readwrite o Ip6Config = '/';
readwrite o Dhcp4Config = '/';
readwrite o Ip4Config = '/';
solo lectura u State = 2;
leer escribir u Ip4Address = 0;
solo lectura u Capacidades = 3;
Driver de solo lectura = 'e1000e';
readwrite s Interface = 'eth0';
readonly s Udi = '/sys/devices/pci0000:00/0000:00:19.0/net/eth0';
};
};
Los --recurrencia y --sólo-propiedades Las opciones pueden ser útiles cuando se desea inspeccionar todas
objetos propiedad de un proceso en particular:
$ gdbus introspect --system --dest org.freedesktop.UPower --object-path / --recurse --only-properties
nodo / {
nodo / org {
node / org / freedesktop {
node / org / freedesktop / UPower {
interfaz org.freedesktop.UPower {
propiedades:
solo lectura b IsDocked = true;
solo lectura b LidForceSleep = false;
solo lectura b LidIsPresent = false;
solo lectura b LidIsClosed = false;
solo lectura b OnLowBattery = false;
solo lectura b OnBattery = falso;
solo lectura b CanHibernate = true;
solo lectura b CanSuspend = true;
readonly s DaemonVersion = '0.9.10';
};
node / org / freedesktop / UPower / Policy {
};
node / org / freedesktop / UPower / Wakeups {
interfaz org.freedesktop.UPower.Wakeups {
propiedades:
solo lectura b HasCapability = verdadero;
};
};
};
};
};
};
De manera similar, el introspección El comando se puede utilizar para conocer los detalles sobre Notify
método:
[...]
interfaz org.freedesktop.Notificaciones {
métodos:
GetServerInformation (out s return_name,
out s return_vendor,
salida s return_version,
salida s return_spec_version);
GetCapabilities (como return_caps);
CloseNotification (en u id);
Notificar (en s app_name,
en tu id,
en el icono s,
en resumen,
en su cuerpo,
en como acciones,
en un {sv} pistas,
en mi tiempo de espera,
fuera u return_id);
};
[...]
Con esta información, es fácil utilizar el llamar al comando para mostrar una notificación
$ gdbus llamada --sesión \
--dest org.freedesktop.Notificaciones \
--object-path / org / freedesktop / Notifications \
--método org.freedesktop.Notificaciones.Notificar \
nombre_mi_aplicación \
42\
gtk-diálogo-info \
"El resumen" \
"Aquí está el cuerpo de la notificación" \
[] \
{}\
5000
(uint32 12,)
Supervisión de todos los objetos de un servicio:
$ gdbus monitor --sistema --dest org.freedesktop.ConsoleKit
Monitoreo de señales de todos los objetos propiedad de org.freedesktop.ConsoleKit
El nombre org.freedesktop.ConsoleKit es propiedad de: 1.15
/ org / freedesktop / ConsoleKit / Session2: org.freedesktop.ConsoleKit.Session.ActiveChanged (falso,)
/ org / freedesktop / ConsoleKit / Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged ('',)
/ org / freedesktop / ConsoleKit / Session2: org.freedesktop.ConsoleKit.Session.ActiveChanged (verdadero,)
/ org / freedesktop / ConsoleKit / Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged ('/ org / freedesktop / ConsoleKit / Session2',)
Supervisión de un solo objeto en un servicio:
$ gdbus monitor --system --dest org.freedesktop.NetworkManager --object-path / org / freedesktop / NetworkManager / AccessPoint / 4141
Monitoreo de señales en object / org / freedesktop / NetworkManager / AccessPoint / 4141 propiedad de org.freedesktop.NetworkManager
El nombre org.freedesktop.NetworkManager es propiedad de: 1.5
/ org / freedesktop / NetworkManager / AccessPoint / 4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Fortaleza': },)
/ org / freedesktop / NetworkManager / AccessPoint / 4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Fortaleza': },)
/ org / freedesktop / NetworkManager / AccessPoint / 4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Fortaleza': },)
/ org / freedesktop / NetworkManager / AccessPoint / 4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Fortaleza': },)
Emitiendo una señal:
$ gdbus emit --session --object-path / foo --signal org.bar.Foo "['foo', 'bar', 'baz']"
Emitiendo una señal a un proceso específico:
$ gdbus emit --session --object-path / bar --signal org.bar.Bar someString --dest: 1.42
Utilice gdbus en línea utilizando los servicios de onworks.net