quinta-feira, 17 de maio de 2018

Traduzindo o menu Iniciar do Openbox

Se você está utilizando o obmenu-generator para gerar o menu Iniciar do Openbox, você pode traduzir todas as categorias (grupos) de programa para o português facilmente, bem como os atalhos rápidos, podendo alterar o comando que vai nos mesmos em algumas partes, bastando apenas editar o arquivo ~/.config/obmenu-generator/schema.pl com seu editor de texto ASCII preferido.

Na sessão {sep => 'Categories'}, na segunda coluna que é LABEL, troque o nome Accessories por Acessórios repetindo o mesmo procedimento para os outros itens desejados que você deseja alterar a descrição, ficando assim a linha alterada.
{cat => ['utility',     'Accessórios', 'applications-utilities']},

our $SCHEMA = [

    #          COMMAND                 LABEL              ICON
    {item => ['xdg-open .',       'File Manager', 'system-file-manager']},
    {item => ['xterm',            'Terminal',     'utilities-terminal']},
    {item => ['xdg-open http://', 'Web Browser',  'web-browser']},
    {item => ['gmrun',            'Run command',  'system-run']},

    {sep => 'Categories'},

    #          NAME            LABEL                ICON
    {cat => ['utility',     'Accessories', 'applications-utilities']},
    {cat => ['development', 'Development', 'applications-development']},
    {cat => ['education',   'Education',   'applications-science']},
    {cat => ['game',        'Games',       'applications-games']},
    {cat => ['graphics',    'Graphics',    'applications-graphics']},
    {cat => ['audiovideo',  'Multimedia',  'applications-multimedia']},
    {cat => ['network',     'Network',     'applications-internet']},
    {cat => ['office',      'Office',      'applications-office']},
    {cat => ['other',       'Other',       'applications-other']},
    {cat => ['settings',    'Settings',    'applications-accessories']},
    {cat => ['system',      'System',      'applications-system']},

------------ corte de conteúdo que não será alterado ----------

## Custom advanced settings
    {sep => undef},
    {beg => ['Advanced Settings', 'applications-engineering']},


Alterando os programas padrão dos 4 itens de programa da raiz do menu Iniciar (atalho rápido).
Na sessão our $SCHEMA = [ troque o nome que tiver na coluna COMMAND por um nome de executavel do sistema de sua preferência onde os 4 primeiros itens do menu Iniciar executam um gerenciador de arquivos, uma janela de terminal, um navegador web e uma caixa executar por padrão da instalação.

Como fica depois de tudo alterado

our $SCHEMA = [

    #          COMMAND                 LABEL              ICON
    {item => ['pcmanfm .',       'Gerenciador de arquivos', 'system-file-manager']},
    {item => ['lxterminal',            'Terminal',     'utilities-terminal']},
    {item => ['firefox', 'Firefox',  'web-browser']},
    {item => ['gmrun',            'Executar...',  'system-run']},
    
    {sep => 'Categorias'},  

    #          NAME            LABEL                ICON
    {cat => ['utility',     'Acessórios', 'applications-utilities']},
    {cat => ['development', 'Desenvolvimento', 'applications-development']},
    {cat => ['education',   'Educação',   'applications-science']},
    {cat => ['game',        'Games',       'applications-games']},
    {cat => ['graphics',    'Gráficos',    'applications-graphics']},
    {cat => ['audiovideo',  'Multimídia',  'applications-multimedia']},
    {cat => ['network',     'Internet',     'applications-internet']},
    {cat => ['office',      'Office',      'applications-office']},
    {cat => ['other',       'Outros',       'applications-other']},
    {cat => ['settings',    'Configurações',    'applications-accessories']},
    {cat => ['system',      'Sistema',      'applications-system']},

------------ corte de conteúdo que não será alterado ----------

    ## Custom advanced settings
    {sep => undef},
    {beg => ['Configurações Avançadas', 'applications-engineering']},

Somente tem como alterar a descrição  das categorias (grupos de programas) em LABEL e os programas utilizados na coluna COMMAND e algumas ações padrão no arquivo schema.pl, não sendo possível traduzir algum item de programa que tiver em um determinado grupo de programa na edição deste arquivo, já que os mesmos nem aparecem aqui, salvo a parte de configuração dos arquivos do Openbox e tint2.

Por padrão todos os items que tiver no menu Iniciar criado pelo obmenu-generator será sua descrição em inglês independente do idioma configurado da sua instalação do sistema, no qual a grande maioria não fara muita diferença pois os nomes utilizados são o proprio nome da aplicação em si mesmo, mas tem alguns casos que vem com uma descrição extra ou somente a descrição do que faz não sendo exibido o nome da aplicação, neste caso você pode editar o arquivo do programa que fica em /usr/share/applications/ onde o mesmo possuir a extensão .desktop e alterar somente uma linha que começa com Name= (não edite as outras linhas que tem Name seguido das [ ] onde vai 2 ou 4 letras de identificação da linguagem do idioma para o menu dentro delas que não funcionará para o Openbox.

Como exemplo no menu Iniciar o item GCompris no grupo Educação aparece como Educational suite GCompris, você pode alterar esta descrição editando o arquivo /usr/share/applications/gcompris.desktop editando somente a linha com Name= descrição.

Name=Educational suite GCompris (descrição padrão antes da alteração)

Name=Jogos Educativos GCompris  (após alterado) 

Se você tiver utilizando o modo menu dinâmico a alteração no menu Iniciar depois de salvar o arquivo editado é no mesmo instante, mas se tiver utilizando menu estático deverá utilizar o comando openbox --reconfigure em uma janela de terminal para atualizar nesta sessão em uso ou pelo atalho do menu.

Telas




    

quinta-feira, 10 de maio de 2018

Instalando o desktop Openbox no Slackware 14.2

Nesta dica, foi feita uma instalação personalizada do Slackware sem os desktop Kde e Xfce para posterior instalação do Openbox que é um window manager bem leve, mas para deixar com um estilo bem próximo de um ambiente freedesktop e usabilidade fácil devemos também instalar algumas aplicações essenciais, alertando que o procedimento abaixo deve ser feito somente para usuários mais experientes caso você não tiver nenhum outro desktop instalado e funcionando atualmente diferente do openbox já que deverá fazer diversas configurações para openbox, tint2, e outros arquivos do Slackware o qual não entrarei em detalhes de todas elas nem do procedimento da instalação personalizada  e configuração do Slackware.

No console logrado como root

# wget https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz

# installpkg sbopkg-0.38.1-noarch-1_wsr.tgz
# sbopkg -r

Agora instalaremos o openbox e algumas aplicações feita para o mesmo.

# sqg -p "openbox obmenu obconf obmenu-generator obshutdown"
openbox: empty REQUIRES line. No queuefile generated.
Uncomment SKIP_EMPTY to change this.
Processing obmenu.
Processing obconf.
Processing obmenu-generator.
Processing obshutdown.
Done.

Foi usado o sqg para verificar todas as dependências dos pacotes citados e para poder passar mais de um pacote para o sbopkg instalar, sendo que a opção -k do sbopkg faz com que ele não baixe o mesmo pacote e recompila o mesmo caso este pacote já está instalado, pois um mesmo pacote pode ser uma dependência de vários outros pacotes com funções diferentes.

# sbopkg -k -i "openbox obmenu obconf obmenu-generator obshutdown"

Tecle q e a seguir Enter na mensagem exibida.


Instalando algumas aplicações para melhorar o uso do desktop openbox

# sbopkg -k -i imlib2 (Na imlib2 escolha a url alternativa, teclando A já que exibi arquivo não encontrado)
# sbopkg -k -i tint2
# sbopkg -k -i gmrun  (Tecle A pra escolher a url alternativa já que a default não funcionou)
# sbopkg -k -i lxterminal
# sbopkg -k -i spacefm (gerenciador de arquivos gráficos com suporte a plugin e ações)
# sbopkg -k -i udevil
# sbopkg -k -i parcellite
# sbopkg -k -i cups-pdf
# sbopkg -k -i feh
# sbopkg -k -i giblib
# sbopkg -k -i scrot
# sbopkg -k -i gcalctool
# sbopkg -k -i lxdm
# sbopkg -k -i nbtscan
# sbopkg -k -i gsimplecal
# sbopkg -k -i geany
# sbopkg -k -i volumeicon
# sbopkg -k -i viewnior
sbopkg -k -i numlockx

Sobre os pacotes acima:

imlib2 = lib dependência do tint2, scrot e feh
tint2 = painel para programas abertos, atalhos, relógio e system tray.
gmrun = caixa executar
spacefm = gerenciador de arquivos, que permite criar atalhos no desktop e papel de parede
udevil = pacote para o spacefm montar dispositivos ou compartilhamento remoto como user normal
parcellite = gerenciador da área de transferência
cups-pdf = impressora virtual pdf
feh = visualizador de imagens, podendo usar a mesma como papel de parede.
giblib = lib de dependência do scrot
scrot = para tirar screenhort
gcalctool = calculadora
lxdm = gestor de login gráfico
nbtscan = pesquisar todas maquinas na rede que esteja rodando um compartilhamento de pasta window ou smb
gsimplecal = calendário simples para utilizar no tint2
geany = editor de texto padrão utilizado para editar configurações do openbox e tint2
volumeicon = ícone de volume para o system tray
viewnior = ótimo visualizador de imagens com suporte a exif
numlockx = ligar teclado numérico automaticamente na inicialização do desktop.

No console logrado agora como usuário normal

$ mkdir ~/.config/openbox
$ cd /etc/xdg/openbox
$ cp -v * ~/.config/openbox

O próximo passo agora é criar um arquivo xinitrc.

Para criar uma arquivo ~/.xinitrc configurado para openbox faça:

$  xwmconfig

Na lista de ambiente gráfico selecione xinitrc.openbox-session, depois selecione OK.
Agora sempre que usar o comando startx, será executado o desktop openbox como padrão do runlevel 3.

Iniciando o desktop openbox

$ startx

Agora faremos diversas configurações, a partir de uma janela de terminal.
Os passos abaixo você deverá esta com o seu usuário normal

Editando o arquivo ~/.config/environment

$ cat environment
#
# Set system-wide environment variables here for Openbox
# User-specific variables should be placed in $HOME/.config/openbox/environment
#

# To set your language for displaying messages and time/date formats, use the following:
#LANG=en_CA.UTF8
LANG=pt_BR.UTF8

# To set your keyboard layout, you need to modify your X config:
# http://www.google.com/search?q=how+to+set+keyboard+layout+xorg

O arquivo environment traduz algumas ações do openbox, ao clicar em Sair a mensagem será exibida em português se você configurou LANG=pt_BR.UTF8 bem como no tint2 onde o botão de área virtual será exibido área de trabalho 1 ao invés de desktop 1 e na parte do relógio apresentará o dia da semana e o mês em português ao invés do inglês.

Configurando aplicações para iniciar junto com o openbox

No final do arquivo comando ~/.config/openbox/autostart coloque os comandos abaixo, para estas aplicações serem iniciadas junto com o openbox.

tint2 &                 (painel)
volumeicon &      (ícone pra regulagem do volume de som)
setxkbmap br      (configura o teclado para abnt2, ou seja brasileiro com a tecla Ç)  
parcellite &         (clipboard)
spacefm --desktop &  (isto permite criar ícones no desktop, e usar fotos de papel de parede pelo spacefm)
xscreensaver -no-splash & (rodar o daemon da proteção de tela)
numlockx on (liga o teclado numérico)

Nota:
Ao dar total controle da área de trabalho para o spacefm, o click com o botão direito do mouse não mais exibirá o menu Iniciar do openbox como padrão, mas você pode exibi o mesmo clicando com o botão direito do mouse em cima
de um atalho configurado no painel ou em uma parte vazia sem ícone do painel (depende da configuração padrão do seu tint2rc) ou querendo de volta o menu Iniciar ao clicar em um espaço vazio do desktop, no spacefm ir no menu Exibir/Configurações, guia Área de trabalho, marque a opção "Botão direito do mouse exibi menu na área de trabalho."

Configurando o obshutdown

Para funcionar as opções do obshutdown e exibi os ícones delas faça o procedimento abaixo como usuário normal.

$ cd /usr/share/obshutdown/
$ cp example.rc ~

No seu HOME faça:

$ mv example.rc .obshutdown.rc

Agora quando executar o  obshutdown, aparecerá os ícones Cancelar, Logout, Reiniciar, Desligar, Suspender, Hibernar que são bonitos e ao clicar nas opções todas as mesmas funcionam agora como user normal.


Utilizando o obshutdown no menu avançado do openbox criado pelo obmenu-generator

Se você utilizou o obmenu-generator para gerar um menu Iniciar avançado e melhor que o tradicional, edite o arquivo ~/.config/obmenu-generator/schema.pl e edite a sessão  This uses the 'oblogout' menu e retire o # desta da linha item e troque oblogout por obshutdown, para substituir a janela de confirmação de saída que retorna para o gerenciador de login gráfico ou para o console real pelo do comando obshutdown que tem opções de cancelar, logout, reiniciar, desligar, suspender e hibernar com belos ícones na cor branca em um fundo preto fullscreen, podendo ser executado pelo user normal.


Antes:

## This uses the 'oblogout' menu
    # {item => ['oblogout', 'Exit', 'application-exit']},
--------------
Depois

 ## This uses the 'oblogout' menu
     {item => ['obshutdown', 'Exit', 'application-exit']},
]

Mudando o editor de texto padrão que edita as configurações do openbox como tint2rc, rc.xml, menu.xml

No arquivo ~/.config/obmenu-generator/config.pl edite o mesmo com seu editor de texto favorito e basta trocar geany por leafpad ou outro de sua preferência e se você tiver utilizando menu dinâmico não precisa reiniciar o openbox ou usar o comando openbox --reconfigure que será aplicada no mesmo instante.

Na sessão our $CONFIG = {  e na linha "editor" troque geany por leafpad.


Utilizando o spacefm para montagem de pendrives

Para que a montagem de pendrive funcione através do spacefm coloque seu usuário nos seguintes grupos do arquivo /etc/group onde nando é o meu usuário normal.

$ cat group | grep nando
disk:x:6:root,adm,nando
cdrom:x:19:nando
messagebus:x:81:nando
haldaemon:x:82:nando
plugdev:x:83:nando
polkitd:x:87:nando

Reinicie o computador, e agora funciona normalmente pelo spacefm a montagem de pendrives.

Compartilhamento windows

Coloque o seu usuário nos grupos abaixo, para que os arquivos colados pela rede fique com as permissões do seu usuário e grupo users.

/etc/group

nobody:x:98:nobody:nando
nogroup:x:99:nando
users:x:100:nando

Montando compartilhamento windows com senha pelo spacefm

Menu Arquivo/Abrir url

Digite:
smb://gustavo:minhasenha@192.168.1.105/privativo

Onde gustavo é o nome do user remoto gustavo, após os dois ponto é a senha minhasenha do user remoto e após a @ é o IP remoto do computador, seguindo pelo compartilhamento remoto que é privativo.

Clique em Ok, onde o mesmo será montado a partir /media podendo ser acessado também pela janela terminal.
A montagem aparece tanto no comando df quanto no comando mount.

Notas:

A linha de comando da montagem fica armazenada no spacefm, incluindo a senha digitada visível, até que você entra com um nova linha de comando.

O spacefm utiliza o udevil para montar dispositivos e o mesmo somente funciona pela especificação do IP como padrão, salvo ser o seu sistema e os outros computadores da rede tiver utilizado IP fixo sendo feito uma configuração especifica de hostname para cada IP fixo da rede associando a um hostname no seu computador, podendo neste caso utilizar qualquer comando de rede pelo hostname como ping, ssh, mount e outros.

Se você configurou o seu servidor samba, pode usar o comando nmblookup para retornar o IP especificando o nome do hostname remoto para pesquisa.

$ nmblookup gustavo  (gustavo é o nome de um computador que compartilha uma pasta windows na rede)
192.168.1.105 gustavo<00>

Para compartilhamento windows sem restrições (senha) use desta forma no spacefm: smb://192.168.1.105/partilha


Instalando uma impressora pdf

Para poder instalar a impressora pdf devemos habilitar o servidor cups tornando-se root na janela de terminal.

# cd /etc/rc.d
# chmod +x rc.cups
# ./rc.cups start

Pronto, agora você pode iniciar o aplicativo do menu Iniciar para instalar a impressora

Por padrão os arquivo imprimidos pelo cups-pdf ficam em /var/spool/cups-pdf/nando

Para modifica para o seu HOME, faça:
# cd /etc/cups
# leafpad cups-pdf.conf

Coloque a seguinte linha na sessão Path Settings   
Out ${HOME}/pdf

Após salvar o arquivo, reinicie o servidor cups.

Ativando o gestor de login gráfico lxdm

Ative o runlevel 4 no arquivo /etc/inittab para usar o gestor login gráfico lxdm, mas é também necessário
editar também o arquivo /etc/rc.d/rc.4 e comentar as linhas do xdm e colocar estas linhas abaixo do mesmo.

# If all you have is LXDM, I guess it will have to do:
 if [ -x /usr/sbin/lxdm ]; then
    exec /usr/sbin/lxdm
  fi

Após reinicie o pc.

O lxdm permite escolher outros desktops que você vier a instalar mais tarde e tem também a opção de Desligar/Reiniciar o computador podendo ser executado pelo user.


Criando um menu melhor que o tradicional com obmenu-generator

O obmenu-generator permite criar um menu Iniciar completo com todos os programas instalados que utilizam arquivos .desktop do freedesktop facilmente podendo escolher entre dois modos de menu sendo estático e dinâmico com ou sem ícones para ambos.

Menu Estático

Gerando um menu estático

$ obmenu-generator -s -c    (gera um menu sem ícones)
$ obmenu-generator -s -i -c (gera um menu com ícones) 

Vantagem:
Você pode remover todos os itens que você não utiliza ou muito raramente utiliza sem remover o arquivo .desktop do local original do sistema, já que os itens do seu menu Iniciar estão no arquivo ~/.config/openbox/menu.xml, servindo também para deixar o seu menu mais exunto somente com atalhos que realmente são usados diariamente.

Permite criar novo grupo de programa que não existe ainda e adicionar programas que não tem arquivos .desktop facilmente sem precisar criar um arquivo .desktop.

Desvantagem:
Não atualiza automaticamente ao instalar ou remover programas pelo seu gerenciador de pacotes.


Menu Dinâmico

Gerando um menu dinâmico

$ obmenu-generator -p     (gera um menu sem ícones)   
$ obmenu-generator -p -i  (gera um menu com ícones) 
 

Não tem como editar os itens do menu Iniciar para alterar um nome de programa, deletar os atalhos que raramente são usados, já que não existe os atalhos no arquivo menu.xml.

Todos programas instalados ou removidos pelo seu gerenciador de pacotes automaticamente o menu Iniciar é atualizado na mesmo instante.

Para incluir um atalho de um programa que não existe um arquivo .desktop basta criar arquivo .desktop simplificado em /usr/share/applications para que o mesmo apareça no menu Iniciar automaticamente


Na tela abaixo um screenhort do meu desktop openbox personalizado.






terça-feira, 3 de abril de 2018

Montando o seu celular Android no Slackware pelo Spacefm

Esta dica é para quem esteja utilizando algum window manager minimalista e utiliza um único gerenciador de arquivos instalado no sistema, neste caso o spacefm.

O gerenciador de arquivos spacefm, permite acessar vários tipos de dispositivos pois ele possuir protocolos para lidar com os mesmos, mas para isto é preciso que você instale alguns comandos de terminal utilizado pelo protocolo desejado e adicione o comando no spacefm.

Primeiramente é preciso que você tenha instalado no seu sistema os pacotes libmtp e fuse.

Agora instalaremos o pacote jmtpfs que é o comando que montará o seu celular, sendo necessário ter o sbopkg instalado no seu sistema no caso do Slackware, mas esta dica pode ser utilizada em qualquer outra distribuição Linux utilizando o gerenciador de pacote nativo da mesma.

Instalando o pacote jmtpfs

# sbopkg -i jmtpfs 

Testando se o seu celular é reconhecido e está na base do mtp

Conecte o celular pelo cabo usb no pc com a tela desbloqueada e no celular selecione "Transferência de arquivos" (a partir do Android 6.0).

Na janela de terminal execute os comandos abaixo,  para ver se o mesmo é reconhecido.

$ lsusb
Bus 001 Device 002: ID 22b8:2e82 Motorola PCS 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ jmtpfs -l 
Device 0 (VID=22b8 and PID=2e82) is a Motorola Moto G (ID2).
Available devices (busLocation, devNum, productId, vendorId, product, vendor):
3, 4, 0x2e82, 0x22b8, Moto G (ID2), Motorola

No resultado do jmtpfs acima vimos que o celular é reconhecido e suportado pelo mtp.

Fazendo a configuração

Crie um ponto de montagem a partir de /media que é onde o spacefm utilizar como padrão para montagem de qualquer dispositivo ou protocolo.

# mkdir /media/celular
# chmod 777 /media/celular

Agora devemos criar o arquivo /etc/fuse.conf com o conteúdo abaixo para poder montar o celular como usuário normal utilizando o editor de texto nano ou outro de sua preferência.

# nano -w /etc/fuse.conf

# Set the maximum number of FUSE mounts allowed to non-root users.                       
# The default is 1000.                                             
#                                                                              
# mount_max = 1000                                          
#Allow non-root users to specify the 'allow_other' or 'allow_root'   
# mount options.                                                     
user_allow_other    

Montando o celular como usuário normal

$ jmtpfs -o allow_other /media/celular
Device 0 (VID=22b8 and PID=2e82) is a Motorola Moto G (ID2).
Android device detected, assigning default bug flags

Verificando a montagem com os comandos df e mount

$ df -hT | grep mtp
jmtpfs         fuse.jmtpfs  1,5G -2,2G  3,6G    - /media/celular

$ mount | grep mtp
jmtpfs on /media/celular type fuse.jmtpfs (rw,nosuid,nodev,allow_other,user=nando)

$ ls /media/celular/
Cartão SD SanDisk/  Interno/

$ ls /media/celular/Cartão\ SD\ SanDisk/
Android/  Audio/  Bluetooth/  Contact/  DCIM/  Download/  Felicidade.mp3  LOST.DIR/  Mp3/  Videos/  lxde 1.png

Desmontando o celular

$ fusermount -u /media/celular

Fazendo a montagem diretamente pelo spacefm

Acesse menu Ferramentas/Novo comando (caso não existir nenhum item ainda) ou clique em qualquer item existem com o botão direito do mouse e escolha Novo/Comando.

Em Definir nome do item, digite: Montar celular
Na guia Comando, coloque somente: jmtpfs -o allow_other /media/celular

Não é necessário marcar usar terminal, e ao escolher a opção Montar celular do menu Ferramentas o celular será montado, podendo escolher entre Cartão SD Scandisk ou Interna para acessar os arquivos, aparecendo automaticamente o ponto de montagem em Dispositivos do lado esquerdo do spacefm se a exibição do mesmo estiver ativada.

Você poderá desmontar o /media/celular diretamente pelo spacefm, em Dispositivos, basta clicar em jmtpfs /media/celular com o botão direito do mouse sobre o mesmo e escolher a opção Desmontar.



Nota:
Seu usuário deve está no grupo plugdev do arquivo /etc/group.

Procedimento testado no Slackware 14.2 com Openbox com o celular Moto G4 Play (lançado em 2016) e um Samsung Galaxy Young Duos TV GT-S6313 (lançado 2013).


quarta-feira, 28 de março de 2018

Controlando os serviços do SystemD com systemctl

O comando systemctl pode ser usado para controlar os serviços do SystemD que é o novo processo de inicialização do sistema já adotado por várias distros como Debian, Ubuntu e outras e para podemos desativar serviços para não ser iniciados automaticamente a cada boot, parar serviço, carregar ou listar os mesmos, devemos conhecer as opções  mais  básicas  deste comando para lidar com os serviços do SystemD, caso venha precisar algum dia, e neste artigo utilizarei sempre o serviço cups-browsed.service como exemplo.

Listando todos os serviços em execução

$ systemctl -t service

Aplicando um filtro para procurar por um serviço.

$ systemctl -t service | grep cups
cups-browsed.service      loaded active running Make remote CUPS printers available locally                    
cups.service                    loaded active running CUPS Scheduler  
                    
Desativar um serviço para não ser mais executado automaticamente na inicialização


Vamos supor que você queira desativar o serviço cups-browsed para que o mesmo não seja mais carregado automaticamente na inicialização.

$ ps xa | grep cups
  376 ?          Ss     0:00 /usr/sbin/cupsd -l
  589 ?          Ssl    0:00 /usr/sbin/cups-browsed
 6358 pts/0    S+     0:00 grep cups

$ sudo systemctl disable cups-browsed.service

Verificando se o serviço cups-browsed.service foi desativado

$ systemctl is-enabled cups-browsed.service
disabled

Ok, vimos que o serviço foi desativado para não mais ser executado automaticamente, mas este serviço na sessão atual continua ativo ainda e funcionando, o qual podemos conferir de maneira simples com o comando ps.

$ ps xa | grep cups
  376 ?          Ss     0:00 /usr/sbin/cupsd -l
  589 ?          Ssl    0:00 /usr/sbin/cups-browsed
 6358 pts/0    S+     0:00 grep cups

Parando o serviço no sessão atual

Parar para o serviço cups-browsed na sessão atual execute o comando abaixo

$ sudo systemctl stop cups-browsed.service

Verificando:
$ ps xa | grep cups
  384 ?        Ss     0:00 /usr/sbin/cupsd -l
 1102 pts/0    S+     0:00 grep cups


Ativar um serviço parado na sessão atual

Para ativar o serviço cups-browsed na sessão atual que tinha sido parado ou que esta desativado para iniciar automaticamente.

$ sudo systemctl start cups-browsed.service

Verificando:
$ ps xa | grep cups
  384 ?        Ss     0:00 /usr/sbin/cupsd -l
 1230 ?        Ssl    0:00 /usr/sbin/cups-browsed
 1235 pts/0    S+     0:00 grep cups


Reativando um serviço para ser executado automaticamente a cada inicialização

Para reativar um serviço que foi desabilitando para que o mesmo não seja executado automaticamente a cada nova inicialização do sistema execute o comando abaixo.

$ sudo systemctl enable cups-browsed.service
Synchronizing state of cups-browsed.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cups-browsed

Conferindo se o mesmo foi reativado

$ systemctl is-enabled cups-browsed.service
enabled

Verificando o estado de um serviço 

O comando systemctl status nome-do-serviço fornece informações mais completo sobre o serviço específico do que o comando ps xa, pois este último somente mostra os serviços em execução.

$ systemctl status cups-browsed.service
● cups-browsed.service - Make remote CUPS printers available locally
   Loaded: loaded (/lib/systemd/system/cups-browsed.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Neste exemplo o serviço cups-browsed.service está desativado para iniciar automaticamente, que é a parte disabled, após o nome do serviço, e o mesmo não está está sendo executado no momento, parte inactive da linha Active.

Agora vamos executar o serviço cups-browsed.service apenas nesta sessão atual.

$ sudo systemctl start cups-browsed.service
iniciando o serviço

Verificando novamente o status:

$ systemctl status cups-browsed.service
● cups-browsed.service - Make remote CUPS printers available locally
   Loaded: loaded (/lib/systemd/system/cups-browsed.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-01-18 10:46:55 -02; 4s ago
 Main PID: 2119 (cups-browsed)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/cups-browsed.service
           └─2119 /usr/sbin/cups-browsed

O serviço cups-browsed.service continua desativado para iniciar automaticamente, mas agora ele está em execução, parte active da linha Active.

O comando "systemctl status" quando usado sem especificar o nome de um serviço retorna uma Hierarquia em forma de raiz de todos os processos ativos exibindo também o seu pid, similar ao comando pstree.