xfce4-clipman requer acesso ao seu monitor Xorg (o sistema gráfico X11) - não apenas porque é realmente um aplicativo gráfico, mas também porque é um gerenciador de área de transferência e o X11 também o abrange.
O problema (principal): O seu display do Xorg ainda não está disponível na inicialização. Ele é iniciado no login , muito tempo depois que a inicialização do sistema foi concluída. Portanto, é impossível iniciar o xfce4-clipman "na inicialização" - o que você realmente quer é iniciar o aplicativo no login também.
(o Linux é desenvolvido para suportar múltiplos usuários, que podem logar e logar a qualquer momento - cada usuário obtém uma nova cópia do Xorg rodando, e a própria tela de login também recebe uma. Então os serviços não podem contar com Xorg estando disponível . )
Iniciar aplicativos no login
A maioria dos ambientes de desktop, incluindo o Xfce, pode iniciar tarefas de "login" via *.desktop
files (que é de fato como vários componentes do Xfce são lançados).
Eles estão localizados em /etc/xdg/autostart/
para serviços globais e ~/.config/autostart/
para serviços pessoais. Depois de criar um, ele é "ativado" por padrão, embora ainda possa ser desativado por meio de xfce4-session-settings
.
Na verdade, até o xfce4-clipman instala seu próprio arquivo de autoinicialização em / etc / xdg / autostart - ele é denominado xfce4-clipman-plugin-autostart.desktop
. Deve funcionar automaticamente contanto que você esteja usando o Xfce4 (devido à OnlyShowIn=XFCE
line).
Mas se o seu sistema estiver faltando esse arquivo, ou se você quiser usar o xfce4-clipman em um ambiente de desktop não-Xfce, então você pode criar um novo. Os arquivos .desktop
da inicialização automática geralmente são assim:
[Desktop Entry] Type=Application Name=Clipboard manager Exec=xfce4-clipman Terminal=false
Iniciando manualmente programas não-CLI
Muitos ambientes de desktop têm uma caixa de diálogo "Executar" em Alt F2 , que permite executar programas sem ocupar um terminal.
Vários métodos de fazer o mesmo de um terminal são:
-
(setsid xfce4-clipman 2>/dev/null &)
-
(xfce4-clipman &)
-
nohup xfce4-clipman &
-
xfce4-clipman & disown
- e assim por diante.
Outros problemas com o seu script init.d
Em situações em que os serviços do sistema são apropriados, você deve se lembrar que os arquivos em /etc/init.d não são apenas scripts simples, eles também são executados no desligamento e devem aceitar subcomandos como "stop" ou "restart". Quando o sistema chama /etc/init.d/your_service stop
, o initscript precisa realmente parar o serviço - não iniciá-lo novamente!
Você marcou a pergunta com systemd , então por que não salvar -se um monte de problemas e escrever um arquivo systemd *.service
nativo em vez disso? Embora os scripts init.d "adequados" possam preencher várias telas, os serviços do systemd geralmente têm menos de uma dúzia de linhas.
Ainda mais importante: há muitas dezenas de serviços sendo iniciados em vários pontos no tempo. Em fases posteriores, algumas instalações estão disponíveis que as etapas anteriores não têm. (Por exemplo, networking.)
Se o seu script não declarar explicitamente seus requisitos de ordenação ("deve ser executado antes de Y, mas depois de Z"), o sistema operacional o executará em um estágio imprevisível, em paralelo com todo o resto. Se você for muito sortudo, ele será executado no momento certo - mas na maioria das vezes ele será executado muito cedo para qualquer coisa funcionar.
Nos arquivos unitários do systemd nativo, o pedido é especificado usando os parâmetros Before=
e After=
. (É uma boa idéia especificar dependências usando Requires=
ou Wants=
também.) Enquanto isso, os scripts init.d (com SysVinit e systemd) usam um bloco de comentário especial marcado com ### BEGIN INIT INFO
, com parâmetros como Required-Start:
e Should-Start:
.