Como iniciar um serviço em um diretório específico via Daemontools?

1

Estou usando daemontools para iniciar meu aplicativo.

No script de execução, tenho algo como exec taskset -c 2 [caminho absoluto para meu aplicativo]

Mas o problema é que uma das bibliotecas de caixa preta do meu aplicativo espera que ele seja executado em um diretório específico.

Agora, minha pergunta é como posso executar meu aplicativo em um diretório específico sem criar um subshell.

Obrigado.

    
por HCSF 08.11.2018 / 04:30

1 resposta

1

Simplesmente altere o diretório no script run antes de executar no aplicativo. O diretório atual será preservado na chamada exec .

Algo parecido com o abaixo no script run :

#!/bin/sh
cd /path/to/datadir
exec taskset -c 2 /path/to/bin/myapp
    
por 08.11.2018 / 06:10
Pode tmpfiles.d remover arquivos com base apenas no tempo (mas não no boot)? não está em / sys / kernel / debug em 2.6.35-22 ______ qstntxt ___

Eu tenho um laptop Sony VPCZ12. Tem aquelas placas de vídeo duplas que são difíceis de trabalhar no linux. O novo kernel 2.6.35 deve suportar isso com o módulo vga_switcheroo que deve estar localizado em / sys / kernel / debug em > 2.6.35.

O problema é que quando eu inicializo meu laptop, ele congela em uma tela preta, a menos que eu inicialize com as opções %code% . Ele não inicializa no X, mas eu posso chegar a um terminal que está bem. Mas vga_switcheroo não está em %code% .

Este é um bug do Ubuntu sobre como o kernel é compilado? Ou é porque eu tenho que inicializar com %code% ?

O livecd inicializa muito bem no X, mas nunca encontrei uma maneira de fazer o X trabalhar na instalação. Há muitas informações sobre o linux no z12, mas a maioria delas é desatualizada, não funciona ou simplesmente não faz sentido

    
______ azszpr2830 ___

Você precisa ter um kernel com o vga_switcheroo ativado e o KMS, ou seja, o modo de configuração do kernel ativo (o que você não tem quando inicializa com o nomodeset).

Para verificar se o vga_switcheroo está habilitado no kernel, dê uma olhada na configuração do seu kernel no Ubuntu. Você deve encontrá-lo em / boot com um nome ao longo das linhas de /boot/config-2.6.35-XX-generic com XX algum número correspondente ao seu kernel.

Se não estiver ativado, você encontrará um kernel Ubuntu personalizado com o vga_switcheroo ativado em

    
______ azszpr2936 ___

Eu nunca consegui trabalhar no Ubuntu, mas eu tenho um sistema KDE funcional usando o arch. Então vou postar uma resposta aqui caso alguém mais venha aqui pelo mesmo problema.

Eu nunca consegui trabalhar no Ubuntu. Não consegui arrancar sem %code% e sem isso vgaswitcheroo não aparece.

O que eu acabei fazendo foi instalar o arch, então antes de fazer qualquer configuração na minha nova instalação de arch, eu instalei um kernel 2.6.35.7 do kernel.org. Que inicializou em um terminal muito bem e estou funcionando no KDE.

    
______ azszpr5368 ___

O problema pode estar nos patches do Ubuntu para o kernel. Tente um kernel vanilla ou outra distro.

@fschmitt não, não é grub2, estou usando no arco com KMS e vgaswitcheroo

    
___