The translation is temporarily closed for contributions due to maintenance, please come back later.

Translation

(itstool) path: varlistentry/term
English
<literal>nojail</literal>
Context English Portuguese (Brazil) State
additional <emphasis>keywords</emphasis> that can be used to select a subset from the whole set of files (<citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> can be instructed via options to include or omit the files having particular keywords listed.) <emphasis>palavras-chave adicionais</emphasis> que podem ser usadas para selecionar um subconjunto de todo o conjunto de arquivos (<citerefentry> <refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> podem ser instruídos através de opções para incluir ou omitir os arquivos com determinadas palavras-chave listadas.)
It is no surprise that <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> can handle only text files with a syntax close to that of <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry>. That is, special lines understood by <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> look like <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry> comments. The syntax of such special lines is rather rigid to simplify their processing. See <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> for details. Não é surpresa que <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> possa manipular apenas arquivos de texto com uma sintaxe próxima a de <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Ou seja, linhas especiais compreendidas por <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> se parecem com comentários <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry>. A sintaxe de tais linhas especiais é bastante rígida para simplificar seu processamento. Veja <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> para detalhes.
Besides using <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> special lines, a script can insist on its dependency upon another service by just starting it forcibly. This can be needed when the other service is optional and will not start by itself because the system admin has disabled it mistakenly in <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Além de usar linhas especiais do <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry>, um script pode insistir em sua dependência de outro serviço apenas iniciando-o forçadamente. Isso pode ser necessário quando o outro serviço é opcional e não será iniciado automaticamente porque o administrador do sistema o desativou por engano no <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
With this general knowledge in mind, let us consider the simple daemon script enhanced with dependency stuff: Com este conhecimento geral em mente, vamos considerar o simples script daemon aprimorado com coisas de dependência:
#!/bin/sh

# PROVIDE: mumbled oldmumble <co xml:id="rcng-hookup-provide"/>
# REQUIRE: DAEMON cleanvar frotz<co xml:id="rcng-hookup-require"/>
# BEFORE: LOGIN<co xml:id="rcng-hookup-before"/>
# KEYWORD: nojail shutdown<co xml:id="rcng-hookup-keyword"/>

. /etc/rc.subr

name=mumbled
rcvar=mumbled_enable

command="/usr/sbin/${name}"
start_precmd="${name}_prestart"

mumbled_prestart()
{
if ! checkyesno frotz_enable &amp;&amp; \
! /etc/rc.d/frotz forcestatus 1&gt;/dev/null 2&gt;&amp;1; then
force_depend frotz || return 1<co xml:id="rcng-hookup-force"/>
fi
return 0
}

load_rc_config $name
run_rc_command "$1"
#!/bin/sh

# PROVIDE: mumbled oldmumble <co xml:id="rcng-hookup-provide"/>
# REQUIRE: DAEMON cleanvar frotz<co xml:id="rcng-hookup-require"/>
# BEFORE: LOGIN<co xml:id="rcng-hookup-before"/>
# KEYWORD: nojail shutdown<co xml:id="rcng-hookup-keyword"/>

. /etc/rc.subr

name=mumbled
rcvar=mumbled_enable

command="/usr/sbin/${name}"
start_precmd="${name}_prestart"

mumbled_prestart()
{
if ! checkyesno frotz_enable &amp;&amp; \
! /etc/rc.d/frotz forcestatus 1&gt;/dev/null 2&gt;&amp;1; then
force_depend frotz || return 1<co xml:id="rcng-hookup-force"/>
fi
return 0
}

load_rc_config $name
run_rc_command "$1"
As before, detailed analysis follows: Como antes, a análise detalhada segue:
That line declares the names of <quote>conditions</quote> our script provides. Now other scripts can record a dependency on our script by those names. Esta linha declara os nomes das <quote>condições</quote> que nosso script fornece. Agora, outros scripts podem registrar uma dependência em nosso script por estes nomes.
Usually a script specifies a single condition provided. However, nothing prevents us from listing several conditions there, e.g., for compatibility reasons. Geralmente, um script especifica uma única condição fornecida. No entanto, nada nos impede de listar várias condições, por exemplo, por razões de compatibilidade.
In any case, the name of the main, or the only, <literal>PROVIDE:</literal> condition should be the same as <envar>${name}</envar>. Em qualquer caso, o nome da condição principal, ou a única, <literal>PROVIDE:</literal> deve ser o mesmo que <envar>${name}</envar>.
So our script indicates which <quote>conditions</quote> provided by other scripts it depends on. According to the lines, our script asks <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> to put it after the script(s) providing <filename>DAEMON</filename> and <filename>cleanvar</filename>, but before that providing <filename>LOGIN</filename>. Portanto, nosso script indica quais condições <quote></quote> são fornecidas por outros scripts dos quais depende. De acordo com as linhas, nosso script pede ao <citerefentry><refentrytitle>rcorder</refentrytitle> <manvolnum>8</manvolnum></citerefentry> para colocá-lo após o(s) script(s) fornecendo <filename>DAEMON</filename> e <filename>cleanvar</filename>, mas antes disso prover <filename>LOGIN</filename>.
The <literal>BEFORE:</literal> line should not be abused to work around an incomplete dependency list in the other script. The appropriate case for using <literal>BEFORE:</literal> is when the other script does not care about ours, but our script can do its task better if run before the other one. A typical real-life example is the network interfaces vs. the firewall: While the interfaces do not depend on the firewall in doing their job, the system security will benefit from the firewall being ready before there is any network traffic. A linha <literal>BEFORE:</literal> não deve ser abusada para contornar uma lista de dependências incompleta no outro script. O caso apropriado para usar o <literal>BEFORE:</literal> é quando o outro script não se importa com o nosso, mas nosso script pode fazer sua tarefa melhor se for executado antes do outro. Um típico exemplo da vida real são as interfaces de rede versus o firewall: embora as interfaces não dependam do firewall em realizar seu trabalho, a segurança do sistema se beneficiará do firewall estar pronto antes que haja qualquer tráfego de rede.
Besides conditions corresponding to a single service each, there are meta-conditions and their <quote>placeholder</quote> scripts used to ensure that certain groups of operations are performed before others. These are denoted by <filename><replaceable>UPPERCASE</replaceable></filename> names. Their list and purposes can be found in <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Além das condições correspondentes a um único serviço, existem meta-condições e seus scripts <quote>placeholder</quote> usados para garantir que determinados grupos de operações sejam executados antes dos outros. Estes são denotados pelos nomes <filename><replaceable>UPPERCASE</replaceable></filename>. Sua lista e finalidades podem ser encontradas em <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
Keep in mind that putting a service name in the <literal>REQUIRE:</literal> line does not guarantee that the service will actually be running by the time our script starts. The required service may fail to start or just be disabled in <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Obviously, <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> cannot track such details, and <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></citerefentry> will not do that either. Consequently, the application started by our script should be able to cope with any required services being unavailable. In certain cases, we can help it as discussed <link linkend="forcedep">below.</link> Tenha em mente que colocar um nome de serviço na linha <literal>REQUIRE:</literal> não garante que o serviço estará realmente em execução no momento em que nosso script for iniciado. O serviço necessário pode falhar ao iniciar ou simplesmente ser desativado em <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum> </citerefentry>. Obviamente, o <citerefentry><refentrytitle>rcorder</refentrytitle> <manvolnum>8</manvolnum></citerefentry> não pode controlar tais detalhes, e o <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></citerefentry> também não fará isso. Consequentemente, o aplicativo iniciado por nosso script deve ser capaz de lidar com quaisquer serviços necessários indisponíveis. Em certos casos, podemos ajudá-lo conforme discutido <link linkend="forcedep">abaixo.</link>
<anchor xml:id="keywords"/>As we remember from the above text, <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> keywords can be used to select or leave out some scripts. Namely any <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> consumer can specify through <option>-k</option> and <option>-s</option> options which keywords are on the <quote>keep list</quote> and <quote>skip list</quote>, respectively. From all the files to be dependency sorted, <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> will pick only those having a keyword from the keep list (unless empty) and not having a keyword from the skip list. <anchor xml:id="keywords"/> Como lembramos do texto acima, as palavras-chave do <citerefentry><refentrytitle>rcorder</refentrytitle> <manvolnum>8</manvolnum> </citerefentry> podem ser usadas para selecionar ou deixar alguns scripts. Ou seja, qualquer consumidor <citerefentry><refentrytitle>rcorder</refentrytitle> <manvolnum>8</manvolnum></citerefentry> pode especificar através das opções <option>-k</option> e <option>-s</option> que as palavras-chave estão na <quote>keep list</quote> e na <quote>skip list</quote>, respectivamente. De todos os arquivos a serem classificados, o <citerefentry><refentrytitle>rcorder</refentrytitle> <manvolnum>8</manvolnum></citerefentry> selecionará apenas aqueles que tiverem uma palavra-chave da lista de manutenção (a menos que vazia) e não uma palavra-chave da lista de itens ignorados.
In FreeBSD, <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> is used by <filename>/etc/rc</filename> and <filename>/etc/rc.shutdown</filename>. These two scripts define the standard list of FreeBSD <filename>rc.d</filename> keywords and their meanings as follows: No FreeBSD, o <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> é usado por <filename>/etc/rc</filename> e <filename>/etc/rc.shutdown</filename>. Esses dois scripts definem a lista padrão de palavras-chave do <filename>rc.d</filename> do FreeBSD e seus significados da seguinte forma:
<literal>nojail</literal> <literal>nojail</literal>
The service is not for <citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></citerefentry> environment. The automatic startup and shutdown procedures will ignore the script if inside a jail. O serviço não é para o ambiente <citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum> </citerefentry>. Os procedimentos automáticos de inicialização e encerramento ignoram o script se estiverem executando dentro de uma jail.
<literal>nostart</literal> <literal>nostart</literal>
The service is to be started manually or not started at all. The automatic startup procedure will ignore the script. In conjunction with the <literal>shutdown</literal> keyword, this can be used to write scripts that do something only at system shutdown. O serviço deve ser iniciado manualmente ou não iniciado. O procedimento de inicialização automática irá ignorar o script. Em conjunto com a palavra-chave <literal>shutdown</literal>, isso pode ser usado para escrever scripts que fazem algo apenas no desligamento do sistema.
<literal>shutdown</literal> <literal>shutdown</literal>
This keyword is to be listed <emphasis>explicitly</emphasis> if the service needs to be stopped before system shutdown. Esta palavra-chave deve ser listada <emphasis>explicitamente</emphasis> se o serviço precisar ser interrompido antes do desligamento do sistema.
When the system is going to shut down, <filename>/etc/rc.shutdown</filename> runs. It assumes that most <filename>rc.d</filename> scripts have nothing to do at that time. Therefore <filename>/etc/rc.shutdown</filename> selectively invokes <filename>rc.d</filename> scripts with the <literal>shutdown</literal> keyword, effectively ignoring the rest of the scripts. For even faster shutdown, <filename>/etc/rc.shutdown</filename> passes the <option>faststop</option> command to the scripts it runs so that they skip preliminary checks, e.g., the pidfile check. As dependent services should be stopped before their prerequisites, <filename>/etc/rc.shutdown</filename> runs the scripts in reverse dependency order. Quando o sistema for desligado, o <filename>/etc/rc.shutdown</filename> será executado. Ele assume que a maioria dos scripts <filename>rc.d</filename> não tem nada a fazer naquele momento. Portanto, <filename>/etc/rc.shutdown</filename> invoca seletivamente os scripts <filename>rc.d</filename> com a palavra-chave <literal>shutdown</literal>, efetivamente ignorando o restante dos scripts. Para um desligamento ainda mais rápido, o <filename>/etc/rc.shutdown</filename> passa o comando <option>faststop</option> para os scripts que executa, para que eles ignorem as verificações preliminares, por exemplo, a verificação do pidfile. Como os serviços dependentes devem ser parados antes de seus pré-requisitos, <filename>/etc/rc.shutdown</filename> executa os scripts na ordem de dependência inversa.
If writing a real <filename>rc.d</filename> script, you should consider whether it is relevant at system shutdown time. E.g., if your script does its work in response to the <option>start</option> command only, then you need not include this keyword. However, if your script manages a service, it is probably a good idea to stop it before the system proceeds to the final stage of its shutdown sequence described in <citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>. In particular, a service should be stopped explicitly if it needs considerable time or special actions to shut down cleanly. A typical example of such a service is a database engine. Se estiver escrevendo um script <filename>rc.d</filename> real, você deve considerar se é relevante no momento do desligamento do sistema. Por exemplo, se o seu script funcionar apenas em resposta ao comando <option>start</option>, não será necessário incluir essa palavra-chave. No entanto, se o seu script gerenciar um serviço, provavelmente será uma boa ideia pará-lo antes que o sistema prossiga para o estágio final de sua seqüência de desligamento descrita em <citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Em particular, um serviço deve ser interrompido explicitamente se precisar de tempo considerável ou ações especiais para encerrar de forma limpa. Um exemplo típico de tal serviço é um mecanismo de banco de dados.
<anchor xml:id="forcedep"/>To begin with, <function>force_depend</function> should be used with much care. It is generally better to revise the hierarchy of configuration variables for your <filename>rc.d</filename> scripts if they are interdependent. <anchor xml:id="forcedep"/> Para começar, <function>force_depend</function> deve ser usado com muito cuidado. Geralmente é melhor revisar a hierarquia de variáveis de configuração para seus scripts <filename>rc.</filename> se eles forem interdependentes.
If you still cannot do without <function>force_depend</function>, the example offers an idiom of how to invoke it conditionally. In the example, our <command>mumbled</command> daemon requires that another one, <command>frotz</command>, be started in advance. However, <command>frotz</command> is optional, too; and <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> knows nothing about such details. Fortunately, our script has access to all <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> variables. If <envar>frotz_enable</envar> is true, we hope for the best and rely on <filename>rc.d</filename> to have started <command>frotz</command>. Otherwise we forcibly check the status of <command>frotz</command>. Finally, we enforce our dependency on <command>frotz</command> if it is found to be not running. A warning message will be emitted by <function>force_depend</function> because it should be invoked only if a misconfiguration has been detected. Se você ainda não pode fazer sem <function>force_depend</function>, o exemplo oferece uma expressão de como invocá-lo condicionalmente. No exemplo, nosso daemon <command>mumbled</command> requer que outro, <command>frotz</command>, seja iniciado antecipadamente. No entanto, <command>frotz</command> é opcional também; e <citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</manvolnum></citerefentry> não sabe nada sobre esses detalhes. Felizmente, nosso script tem acesso a todas as variáveis <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Se <envar>frotz_enable</envar> estiver como true, esperamos pelo melhor e dependemos de <filename>rc.d</filename> para iniciar <command>frotz</command>. Caso contrário, nós forçadamente verificaremos o status de <command>frotz</command>. Finalmente, impomos nossa dependência ao <command>frotz</command> se ele não estiver sendo executado. Uma mensagem de aviso será emitida por <function>force_depend</function> porque ele deve ser chamado apenas se um erro de configuração for detectado.
Giving more flexibility to an rc.d script Dando mais flexibilidade a um script rc.d
When invoked during startup or shutdown, an <filename>rc.d</filename> script is supposed to act on the entire subsystem it is responsible for. E.g., <filename>/etc/rc.d/netif</filename> should start or stop all network interfaces described by <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Either task can be uniquely indicated by a single command argument such as <option>start</option> or <option>stop</option>. Between startup and shutdown, <filename>rc.d</filename> scripts help the admin to control the running system, and it is when the need for more flexibility and precision arises. For instance, the admin may want to add the settings of a new network interface to <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> and then to start it without interfering with the operation of the existing interfaces. Next time the admin may need to shut down a single network interface. In the spirit of the command line, the respective <filename>rc.d</filename> script calls for an extra argument, the interface name. Quando chamado durante a inicialização ou desligamento, um script <filename> rc.d</filename> deve agir em todo o subsistema pelo qual é responsável. Por exemplo, <filename>/etc/rc.d/netif</filename> deve iniciar ou parar todas as interfaces de rede descritas por <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Qualquer tarefa pode ser indicada exclusivamente por um único argumento de comando, como <option>start</option> ou <option>stop</option>. Entre a inicialização e o desligamento, os scripts <filename>rc.d</filename> ajudam o administrador a controlar o sistema em execução, e é quando surge a necessidade de mais flexibilidade e precisão. Por exemplo, o administrador pode querer adicionar as configurações de uma nova interface de rede ao <citerefentry><refentrytitle>rc.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry> e então iniciá-lo sem interferir o funcionamento das interfaces existentes. Da próxima vez, o administrador pode precisar desligar uma única interface de rede. No espírito da linha de comando, o respectivo script <filename>rc.d</filename> solicita um argumento extra, o nome da interface.
Fortunately, <citerefentry><refentrytitle>rc.subr</refentrytitle><manvolnum>8</manvolnum></citerefentry> allows for passing any number of arguments to script's methods (within the system limits). Due to that, the changes in the script itself can be minimal. Felizmente, <citerefentry><refentrytitle>rc.subr</refentrytitle><manvolnum>8</manvolnum></citerefentry> permite passar qualquer número de argumentos para os métodos do script (dentro dos limites do sistema). Devido a isso, as alterações no próprio script podem ser mínimas.
How can <citerefentry><refentrytitle>rc.subr</refentrytitle><manvolnum>8</manvolnum></citerefentry> gain access to the extra command-line arguments. Should it just grab them directly? Not by any means. Firstly, an <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry> function has no access to the positional parameters of its caller, but <citerefentry><refentrytitle>rc.subr</refentrytitle><manvolnum>8</manvolnum></citerefentry> is just a sack of such functions. Secondly, the good manner of <filename>rc.d</filename> dictates that it is for the main script to decide which arguments are to be passed to its methods. Como o <citerefentry><refentrytitle>rc.subr</refentrytitle> <manvolnum>8</manvolnum></citerefentry> pode obter acesso aos argumentos de linha de comando extra. Deveria pegá-los diretamente? Não por qualquer meio. Primeiro, uma função <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry> não tem acesso aos parâmetros posicionais de seu chamador, mas o <citerefentry><refentrytitle>rc.subr</refentrytitle> <manvolnum>8</manvolnum></citerefentry> é apenas uma despedida de tais funções. Em segundo lugar, a boa maneira de <filename>rc.d</filename> determina que é para o script principal decidir quais argumentos devem ser passados para seus métodos.
So the approach adopted by <citerefentry><refentrytitle>rc.subr</refentrytitle><manvolnum>8</manvolnum></citerefentry> is as follows: <function>run_rc_command</function> passes on all its arguments but the first one to the respective method verbatim. The first, omitted, argument is the name of the method itself: <option>start</option>, <option>stop</option>, etc. It will be shifted out by <function>run_rc_command</function>, so what is <envar>$2</envar> in the original command line will be presented as <envar>$1</envar> to the method, and so on. Portanto, a abordagem adotada por <citerefentry><refentrytitle>rc.subr</refentrytitle><manvolnum>8</manvolnum></citerefentry> é a seguinte: <function>run_rc_command</function> transmite todos os seus argumentos, mas o primeiro um para o respectivo método na íntegra. O primeiro, omitido, argumento é o nome do próprio método: <option>start</option>,<option>stop</option>, etc. Ele será deslocado por <function>run_rc_command</function>, então o que é <envar>$2</envar> na linha de comando original será apresentado como <envar>$1</envar> ao método, e assim por diante.
To illustrate this opportunity, let us modify the primitive dummy script so that its messages depend on the additional arguments supplied. Here we go: Para ilustrar essa oportunidade, vamos modificar o script fictício primitivo para que suas mensagens dependam dos argumentos adicionais fornecidos. Aqui vamos nós:

Loading…

New source string a year ago
Browse all component changes

Things to check

Unchanged translation

Source and translation are identical

Reset

Glossary

English Portuguese (Brazil)
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: varlistentry/term
Source string location
article.translate.xml:1104
String age
a year ago
Source string age
a year ago
Translation file
articles/pt_BR/rc-scripting.po, string 128