<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jan 16, 2018 at 1:52 PM, Tomasz Michalski <span dir="ltr"><<a href="mailto:tmichalski23@gmail.com" target="_blank">tmichalski23@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi<div>I have a problem with call methods from terminal which take an argument, for example when I try to use this one:</div><div>busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1/<wbr>unit/syscom_2epath org.freedesktop.systemd1.Unit Kill <br></div><div>I get output </div><div><div>Invalid arguments '' to call org.freedesktop.systemd1.Unit.<wbr>Kill(), expecting 'si'.<br></div></div><div><br></div><div>The same with Restart:</div><div><div>Invalid arguments '' to call org.freedesktop.systemd1.Unit.<wbr>Restart(), expecting 's'.</div></div><div><br></div><div>I know that some parameters has to be given acc to introspects:</div><div>busctl introspect org.freedesktop.systemd1 /org/freedesktop/systemd1/<wbr>unit/syscom_2epath<br></div><div><div>.Result                          property  s         "success"                        </div><div>.Unit                             property  s         "syscom.service"                 </div><div>org.freedesktop.systemd1.Unit interface -         -                                </div><div>.Kill                               method    si        -                                </div><div>.Reload                         method    s         o                                </div><div>.ReloadOrRestart          method    s         o                                </div><div>.ReloadOrTryRestart    method    s         o                                </div><div>.ResetFailed                 method    -         -                                </div><div>.Restart                         method    s         o                                </div><div>.SetProperties               method    ba(sv)    -                                </div><div>.Start                              method    s         o                                </div><div>.Stop                               method    s         o                                </div><div>.TryRestart                      method    s         o  </div></div><div><br></div><div>However I don't know what I should exactly write, what exactly string? I tried for example:</div><div><div>busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1/<wbr>unit/syscom_2eservice org.freedesktop.systemd1.Unit Restart "dupa"</div><div>I got output:</div><div>Too few parameters for signature.</div></div><div><br></div><div>How can I get to know what exactly should I give as parameter. This is a bit frustrating.</div></div></blockquote><div><br></div><div>See the API documentation at: <a href="https://www.freedesktop.org/wiki/Software/systemd/dbus/">https://www.freedesktop.org/wiki/Software/systemd/dbus/</a></div><div><br></div><div>The <font face="monospace, monospace">Unit.Restart()</font> call is documented as:</div><div><font face="monospace, monospace"><br></font></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><font face="monospace, monospace">Restart(in s mode, out o job)</font>;</div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>this means it takes one string parameter – the job mode.</div><div><br></div><div>Job mode is the same as <font face="monospace, monospace">Manager.StartUnit()</font>, and is documented as:</div><div><br></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote">The mode needs to be one of replace, fail, isolate, ignore-dependencies, ignore-requirements. If "replace" the call will start the unit and its dependencies, possibly replacing already queued jobs that conflict with this. If "fail" the call will start the unit and its dependencies, but will fail if this would change an already queued job. If "isolate" the call will start the unit in question and terminate all units that aren't dependencies of it. If "ignore-dependencies" it will start a unit but ignore all its dependencies. If "ignore-requirements" it will start a unit but only ignore the requirement dependencies. It is not recommended to make use of the latter two options. Returns the newly created job object.</div></div></blockquote><div><br></div>So "replace" would be an acceptable value. "dupa" is not.<div><br></div><div>Depending on the tools used, you need to declare the type of each parameter. For example, busctl requires the "signature" (all input parameter types together – in this case, just an "<font face="monospace, monospace">s</font>") to be specified after the method call; for example:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace, monospace">busctl call ... </font><font face="monospace, monospace">org.freedesktop.systemd1.Unit </font><span style="font-family:monospace,monospace">Restart s replace</span></div></blockquote><div><br></div><div>gdbus or dbus-send each have their own, different syntax.</div><div><br></div><div><div class="gmail_extra"><div class="gmail_quote"><div> </div></div>-- <br><div class="gmail_signature"><div dir="ltr">Mantas Mikulėnas</div></div>
</div></div></div>