falc/robo-system-service

与系统服务管理相关的机器人任务。

v0.2.0 2016-10-11 18:50 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:23:04 UTC


README

License Build Status Coverage Status Quality Score

与系统服务管理器交互的任务集合。

需求

  • Robo ~0.5 (0.5.0或更高版本)

安装

falc/robo-system-service 包添加到您的 composer.json

composer require falc/robo-system-service

Falc\Robo\Service\loadTasks 特性添加到您的 RoboFile

class RoboFile extends \Robo\Tasks
{
    use Falc\Robo\Service\loadTasks;

    // ...
}

任务

启动

启动服务

$this->taskServiceStart()
    ->serviceManager('systemd')
    ->service('service1')
    ->run();

紧凑格式

$this->taskServiceStart('systemd', 'service1')->run();

您可以将它与 taskSshExec() 结合使用,在远程服务器上启动服务

$startTask = $this->taskServiceStart()
    ->serviceManager('systemd')
    ->service('service1');

$this->taskSshExec('remote.example.com')
    ->remoteDir('/home/user')
    ->printed(false) // Do not display output
    ->exec($startTask)
    ->run();

停止

停止服务

$this->taskServiceStop()
    ->serviceManager('systemd')
    ->service('service1')
    ->run();

紧凑格式

$this->taskServiceStop('systemd', 'service1')->run();

您可以将它与 taskSshExec() 结合使用,在远程服务器上停止服务

$stopTask = $this->taskServiceStop()
    ->serviceManager('systemd')
    ->service('service1');

$this->taskSshExec('remote.example.com')
    ->remoteDir('/home/user')
    ->printed(false) // Do not display output
    ->exec($stopTask)
    ->run();

重启

重启服务

$this->taskServiceRestart()
    ->serviceManager('systemd')
    ->service('service1')
    ->run();

紧凑格式

$this->taskServiceRestart('systemd', 'service1')->run();

您可以将它与 taskSshExec() 结合使用,在远程服务器上重启服务

$restartTask = $this->taskServiceRestart()
    ->serviceManager('systemd')
    ->service('service1');

$this->taskSshExec('remote.example.com')
    ->remoteDir('/home/user')
    ->printed(false) // Do not display output
    ->exec($restartTask)
    ->run();

重新加载

重新加载服务

$this->taskServiceReload()
    ->serviceManager('systemd')
    ->service('service1')
    ->run();

紧凑格式

$this->taskServiceReload('systemd', 'service1')->run();

您可以将它与 taskSshExec() 结合使用,在远程服务器上重新加载服务

$reloadTask = $this->taskServiceReload()
    ->serviceManager('systemd')
    ->service('service1');

$this->taskSshExec('remote.example.com')
    ->remoteDir('/home/user')
    ->printed(false) // Do not display output
    ->exec($reloadTask)
    ->run();

启用

启用服务

$this->taskServiceEnable()
    ->serviceManager('systemd')
    ->service('service1')
    ->run();

紧凑格式

$this->taskServiceEnable('systemd', 'service1')->run();

您可以将它与 taskSshExec() 结合使用,在远程服务器上启用服务

$enableTask = $this->taskServiceEnable()
    ->serviceManager('systemd')
    ->service('service1');

$this->taskSshExec('remote.example.com')
    ->remoteDir('/home/user')
    ->printed(false) // Do not display output
    ->exec($enableTask)
    ->run();

禁用

禁用服务

$this->taskServiceDisable()
    ->serviceManager('systemd')
    ->service('service1')
    ->run();

紧凑格式

$this->taskServiceDisable('systemd', 'service1')->run();

您可以将它与 taskSshExec() 结合使用,在远程服务器上禁用服务

$disableTask = $this->taskServiceDisable()
    ->serviceManager('systemd')
    ->service('service1');

$this->taskSshExec('remote.example.com')
    ->remoteDir('/home/user')
    ->printed(false) // Do not display output
    ->exec($disableTask)
    ->run();

守护进程重新加载

此任务仅支持systemd。

$this->taskServiceDaemonReload()
    ->serviceManager('systemd')
    ->run();

紧凑格式

$this->taskServiceDaemonReload('systemd')->run();

您可以将它与 taskSshExec() 结合使用,在远程服务器上重新加载systemd管理器配置

$daemonReloadTask = $this->taskServiceDaemonReload()
    ->serviceManager('systemd');

$this->taskSshExec('remote.example.com')
    ->remoteDir('/home/user')
    ->printed(false) // Do not display output
    ->exec($daemonReloadTask)
    ->run();

方法

所有任务都实现了这些方法

  • serviceManager($serviceManager):设置要使用的服务管理器。
  • service():设置要管理的服务。
  • verbose():启用详细模式。

服务管理器

每个任务都需要在构造函数中或使用 serviceManager($serviceManager) 方法设置一个服务管理器。

目前支持的这些服务管理器