Skip to main content

Erro: service XYZ does not support chkconfig

Erro clássico. Você faz um script shell, e ao tentar colocar ele na lista dos serviços de start e stop do servidor, recebe a mensagem do título deste post, veja como resolver, de forma simples.

(Assumindo que o nome do meu script seja: myscript)

1 – Copie seu script para dentro de: /etc/init.d
2 – cd /etc/init.d
3 – chmod +x myscript
4 – Adicione essas linhas abaixo, incluíndo #,  logo após  #!/bin/bash ou #!/bin/sh:

# chkconfig: 2345 95 20
# description: descricao
# O que seu script faz (Acho que isso nem é mais necessário)
# processname: myscript

Salve, saia e execute a linha abaixo:

5 – chkconfig –level 2345 myscript on

Pronto…

Tambaqui Assado Regado ao Molho de Gengibre

tambaqui

O último feriado da Semana Santa foi ótimo, passei em Porto Velho – RO acompanhado de grandes amigos. Foram 4 dias comendo peixe, de tudo quanto é jeito, assado, cozinho, grelhado… enfim… uma verdadeira orgia gastronômica 🙂 .

Então separei esta receita para que vocês possam se deliciar também com um dos melhores peixes da região amazônica, o Tambaqui.

  • 1 “banda” de tambaqui (aproximadamente 1kg)
  • 4 dentes de alho
  • 2 cebolas grandes (cabeça)
  • 1 maço de coentro
  • 2 batatas grandes
  • 5 colheres cheias de azeite
  • suco de 2 limões
  • sal e pimenta a gosto
  • água, se necessário

Coloque os 4 dentes de alho, 1 cebola, o coentro, o azeite, o suco dos limões, sal e pimenta no liquidificador e espalhe a mistura sobre a banda de tambaqui, com a pele virada para baixo, furando-o com um
garfo para o tempero penetrar bem.

Deixe nessa salmoura durante toda a noite, dentro da geladeira. No dia seguinte, vire o peixe com a pele para cima e torne a regá-lo. Cubra com papel alumínio e a outra cebola cortada em rodelas grandes e leve ao forno médio por 1 hora.

Retire o papel alumínio, deixando-o dourar por mais alguns minutos, ou até que a pele solte, quando enrolada com um garfo.

Decore com batatas cozidas e douradas ao redor.

Sirva com arroz branco, decorado com azeitonas.

Receita do Molho de Gengibre

  • 50 g de gengibre
  • 125 g de manteiga
  • 100 g creme de leite
  • 1 cebola grande
  • 2 gemas
  • Sal
  • Pimenta do reino moida
  • Páprica picante
  1. Descasque e rale o gengibre
  2. Pique a cebola em pedaços bem miúdos
  3. Refogue-os na manteiga, em fogo médio por aproximadamente 20 minutos
  4. Coe tudo numa peneira fina e passe para outra panela
  5. Junte as gemas, o sal, a pimenta e a páprica e mexa bastante, com colher de pau
  6. Deixe em fogo brando por 5 minutos

E pra beber?

Há, um bom vinho branco cai muito bem, mas se quiser algo mais exótico, tente esse delicioso cocktail cubano, testei e confirmo, é uma combinação perfeita, extremamente refrescante.

Mojito Cubano

  • 1 dose de rum branco (sugestão bacardi)
  • 1 colhere (sopa) de açúcar
  • Suco de 1 limão
  • 1/2 copo de água com gás (cerca de 100 ml)
  • 1 ramo de hortelã (cerca de umas 10 a 12 folhas)
  • Gelo picado a gosto
  1. Coloque no copo onde vai ser servido o drink, os 4 últimos ingredientes
  2. Amasse bem o hortelã (esse é o segredo do bom mojito)
  3. Depois é só adicionar o rum e o gelo
  4. Aí é só apreciar

Nem cachorro come, porque não sobra 🙂

Migrando repositórios subversion com erro database crashing (errcode=160029)

HOWTO: Migrando repositórios
=======================================
Ambiente: Linux CentOS 5.2 / RHEL / Fedora

1. Problema:

O Servidor onde estava rodando o Subversion deu crash de disco (CentOs 4.4), e nem permitia logar diretamente na console.

Ante ao desespero, realizou-se o update para a versão mais nova do CentOS 5.2, com isso o servidor voltou a permitir logar, e foi possível reintalar o subversion, e migrar os repositórios para uma outra máquina.

A instalação foi executada seguindo este tutorial: http://wiki.centos.org/HowTos/Subversion

2. Ao tentar fazer um checkout nos projetos, o mesmo não permitia, e apresentava o seguinte erro:

<D:error>
<C:error/>
<m:human-readable errcode=”160029″>
Could not open the requested SVN filesystem
</m:human-readable>
</D:error>

Depois de algumas pesquisas, descobri que o banco de dados dos repositórios (diretório DB) estava corrompido, e era necessário fazer um recover.

3. Rodei o comando:

# svnadmin recover /var/www/svn/projetoxyz/

Como resposta recebi:

Repository lock acquired.
Please wait; recovering the repository may take some time…
svnadmin: DB_RUNRECOVERY: Fatal error, run database recovery
svnadmin: bdb: /var/www/svn/projetoxyz/db/log.0000000015: log file open failed: No such file or directory
svnadmin: bdb: PANIC: No such file or directory
svnadmin: bdb: DB_ENV->log_put: 15: DB_RUNRECOVERY: Fatal error, run database recovery

Certo, com isso percebi que o problema era um pouquinho mais grave, na verdade sempre que vejo essa frase Fatal error, imagino um problema um pouco mais trabalhoso 🙂

4. Acessei a pasta db de dentro do projetoxyz

# cd /var/www/svn/projetoxyz/db
# ls

-rwxrwxrwx 1 apache apache  172032 Dec 11 10:16 changes
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 copies
-rwxrwxrwx 1 apache apache    1955 Oct  3  2008 DB_CONFIG
-rwxrwxrwx 1 apache apache       4 Oct  3  2008 fs-type
-rwxrwxrwx 1 apache apache 1048518 Oct 15 10:39 log.0000000013
-rwxrwxrwx 1 apache apache   13746 Dec 11 10:16 log.0000000014
-rwxrwxrwx 1 apache apache  126976 Dec 11 10:16 nodes
-rwxrwxrwx 1 apache apache  122880 Dec 11 10:16 representations
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 revisions
-rwxrwxrwx 1 apache apache 8777728 Dec 11 10:16 strings
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 transactions
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 uuids

Observe que existe na pasta dois arquivos de log (log.0000000013 e log.0000000014). Apaguei este dois arquivos.

# rm -rf log.0000000013 log.0000000014

5. Voltei para a pasta svn, e executei o comando svnadmin recover novamente:

# cd /var/www/svn/
# svnadmin recover /var/www/svn/projetoxyz/

Agora como resposta obtive:

Repository lock acquired.
Please wait; recovering the repository may take some time…

Recovery completed.
The latest repos revision is 25.

Com este retorno podemos concluir que o banco de dados do repositório foi restaurado.

6. Agora podemos fazer o backup do repositório e restaurar em nosso novo servidor.

# cd /var/www/svn/
# svnadmin dump projetoxyz > projetoxyz_dump

Ao concluir o dump, será criado o arquivo projetoxyz_dump, agora é so enviar para o novo servidor, e fazer a restauração.

# scp projetoxyz_dump root@192.168.1.10:/var/www/svn/

7. No servidor novo, você cria o projeto e faz o restauração do arquivo recebido.

# svnadmin create projetoxyz

altera o dono do projeto:

# chown apache.apache projetoxyz -R

Realiza o reload:

# svnadmin load projetoxyz < projetoxyz_dump

8. Ao terminar o restaure, você deve acrescentar uma entrada no subversion.conf do nome do projeto criado, conforme visto no tutorial: http://wiki.centos.org/HowTos/Subversion

# vi /etc/httpd/conf.d/subversion.conf

Acrescente:

<Location /projetoxyz>
DAV svn
SVNPath /var/www/svn/projetoxyz
AuthType Basic
AuthName “Descricao do Projeto”
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>

Reinicie o apache:

# service httpd restart
ou
# /etc/init.d/httpd restart

lembrando que só terão acesso ao repositório os usuários criados em /etc/svn-auth-conf.

# htpasswd -cm /etc/svn-auth-conf primeiro_usuario
New password:
Re-type new password:
Adding password for user primeiro_usuario

Adicionando mais usuários:

# htpasswd -m /etc/svn-auth-conf outro_usuario
New password:
Re-type new password:
Adding password for user outro_usuario

e assim sucessivamente.

9. Após esses passos, já é possivel fazer checkout utilizando sua ferramenta favorita, como o TortoiseSVN, diretamente pelo Windows, colocando a url de seu servidor:

http://192.168.1.10/projetoxyz

Ufa!!! É só isso 🙂

Cabo de redes par-trançado e conectores RJ45

Howto:  Como fazer a cabo de rede par-traçado?

Pra nunca mais esquecer, pois a idéia deste howto é focar no iniciante.

Será explicado abaixo dois tipos de cabos, um utilizado em HUB/Switch e também o famoso cabo cross-over (ponto-a-ponto).

1. Cabo para ser utilizado em um Hub ou Switch,  basta fazer as duas pontas iguais, seguindo o modelo abaixo.

1) bv.v.bl.a.ba.l.bm.m

2) bv.v.bl.a.ba.l.bm.m

2. Se for para ligar dois computadores diretamente, você precisará de um cabo cross-over, para isso basta fazer cada uma das pontas conforme modelo abaixo.

1) bv.v.bl.a.ba.l.bm.m

2) bl.l.bv.a.ba.v.bm.m
E pronto.

Extra! Extra! Descoberto código fonte do Windows (traduzido).

[c]

/* Source Code – Windows XP
*/

#include “win31.h”
#include “win95.h”
#include “win98.h”
#include “workst~1.h” //windows workstation
#include “evenmore.h”
#include “oldstuff.h” //coisas velhas
#include “billrulz.h”
#include “monopoly.h”
#include “backdoor.h”
#define install = hard

char make_prog_look_big(16000000); //soh pra fazer o programa ficar maior
void main()
{
while(!crashed) //enquanto não trava
{
display_copyright_message(); //mostrar copyright
display_bill_rules_message(); //mostrar regras do tio bil
do_nothing_loop();

if (first_time_installation) //se primeira instalação
{
make_100_megabyte_swapfile(); //fazer um arquivo de paginação de 100mb
do_nothing_loop(); //um loop que não faz nada
totally_screw_up_hpfs_file_system(); //detona os sistemas de arquivo do os2
search_and_destroy_the_rest_of-os2(); //detona ateh a alma do os2
make_futile_attempt_to_damage_linux(); //faz tentativa inutil de detonar o linux
disable_netscape(); //desabilita netscape
disable_realplayer(); //e realplayer tambem
disable_lotus_products(); //e porque não o lutus?
hang_system(); //trava tudo
} //if
write_something(anything); //escreve uma baboseira qualquer, tipo despejo de memoria para …
display_copyright_message(); //e a copyright de novo
do_nothing_loop(); //o velho loop que não faz nada pra barrinha de carregar ter graça
do_some_stuff(); //tece mais uma seda …

if (still_not_crashed) //se por acaso não travou
{
display_copyright_message(); //a velha copyright
do_nothing_loop();  //o loop de novo
basically_run_windows_31(); //roda o windows 3.1 com novo tema
do_nothing_loop(); //o loop pra apresentar a barrinha …
} // if
} //while

if (detect_cache()) //tira os caches
disable_cache();

if (fast_cpu()) //aqui eh que detona a cpu e deixa ela lenta
{
set_wait_states(lots);
set_mouse(speed,very_slow);
set_mouse(action,jumpy);
set_mouse(reaction,sometimes);
} //if

/* printf(“welcome to windows 3.1”);    */ //mas repara …
/* printf(“welcome to windows 3.11”);   */
/* printf(“welcome to windows 95”);     */
/* printf(“welcome to windows nt 3.0”); */
/* printf(“welcome to windows 98”);     */
/* printf(“welcome to windows nt 4.0”); */
printf(“welcome to windows xp”); //ateh minha vó troca essa msg …

if (system_ok()) //se tiver tudo ok ainda
crash(to_dos_prompt) //trava e vai pro prompt do dos
else
system_memory = open(“a:\swp0001.swp”,o_create); //cria um arquivo de paginação onde puder tipo no drive a:

while(something) //loops e mais loops …
{
sleep(5);
get_user_input();
sleep(5);
act_on_user_input();
sleep(5);
} // while
create_general_protection_fault(); //e a velha msg de gpf, huahuahuahuahua

} // main

[/c]

Traduzido por: Frankley Francalino.

Fonte: http://michaelsync.net/2006/10/13/window-xp-source-code

Fragmentos de código para Desenvolvedores

Vi no blog AllWebDesignResources, um artigo chamado CSS Code Snippets for Web Designers & Developers, com uma grande quantidade de recursos sobre codificação em CSS, com dicas de vários sites que disponibilizam trechos de códigos para que possamos utilizar em nossos projetos, economizando tempo e esforço para criar aquele efeito especial. Vale uma visita.

Link: CSS Code Snippets for Web Designers & Developers

Update: 28/05/2013

Mais alguns sites códigos para as mais diversas necessidades:

  • Snipt. Código de HTML, CSS, jQuery, WordPress, C ++, Java, Python, Ruby e outros.
  • Snipplr. JavaScript, HTML, CSS, PHP, Ruby e Objective C.
  • Code Keep. PHP, JavaScript, CSS, Java, Python, Perl, Ruby e muito mais.
  • WPSnipp. Outro com códigos relacionados com WordPress.
  • Code Codex. Um wiki onde é possível compartilhar seu código e melhorar o código compartilhado por outros.
  • Snippets Mania. Pequena biblioteca de fragmentos de códigos relacionados con PHP, Python, JavaScript, jQuery e muitos outros.
Fonte: http://designreflect.com/excellent-resources-for-code-snippets/

Howto: WordPress 2.7.x muito lento no Debian

Depois de muito apanhar juntamente com meu amigo Sílvio, chegamos a resolução.

Problema:
Ao instalar o WordPress 2.7.1 no Debian Etch, o mesmo estava demorando até 30 segundos para iniciar, principalmente a parte administrativa.

A solução:

Existe várias formas de resolver, registradas aqui:  http://core.trac.wordpress.org/ticket/8590

A mais simples:

  1. Edite o arquivo: /wp-includes/http.php
  2. Vá até a linha 210, e encontre esse bloco de código:
  3. function request( $url, $args = array() ) {
    global $wp_version;

    e deixe dessa forma:

    function request( $url, $args = array() ) {
    return;
    global $wp_version;
  4. Salve o arquivo e tenta acessar a área administrativa do wordpress novamente.