Eu realmente preciso da opção -dmS na tela para executar o trabalho em segundo plano de forma estável até mesmo sair?

2

Eu vi muitos lugares introduzir screen para executar o trabalho em segundo plano de forma estável até mesmo sair. Eles usam

screen -dmS name

De acordo com screen -h , essa opção significa

-dmS name Start as daemon: Screen session in detached mode.

O que é o daemon? Eu não entendo.

Descobri que, se eu simplesmente digitar screen , posso entrar automaticamente em uma tela. Depois de executar algum comando, pressione Ctrl+a d e efetue logoff. O trabalho ainda está funcionando bem. Então esta abordagem simples está bem? Eu realmente preciso de -dmS para tornar o trabalho em segundo plano estável?

Deixe-me tentar dar um resumo:

Tudo o que é executado na tela é seguro para fazer logoff (mas você deve desanexar a tela, não sair da tela quando fizer logout), independentemente da opção definida para a tela.

-dmS é apenas uma opção conveniente para enviar trabalhos em segundo plano de forma não-mediativa. Isso é

screen -dmS nameOfScreen command
    
por user15964 29.04.2016 / 16:23

3 respostas

5

Você só usaria -dm se quiser executar um comando em uma sessão de tela e não inseri-lo de forma interativa

-S é apenas para dar à sessão um nome utilizável para que você possa se reconectar a ela novamente facilmente

Se você quiser usá-lo de forma interativa e não quiser dar um nome legível a humanos, poderá omitir todos esses argumentos com segurança.

Por exemplo, se você quiser apenas iniciar o screen para executar o comando, digamos, /path/to/longTime e não quiser assisti-lo, poderá fazê-lo como

screen -dmS longSession /path/to/longTime

ou você poderia fazer

screen -S longSession
$ /path/to/longTime

ctrl a d

Ambos realizariam a mesma coisa, mas um é mais fácil de escrever e um pouco menos de digitação.

    
por 29.04.2016 / 16:27
3

É mais útil como screen -dmS name command args - que iniciará uma sessão de tela chamada name em segundo plano (ou seja, desanexada) e executará command args dentro dessa sessão de tela.

Sem o command args , ele iniciará a sessão de tela em segundo plano.

Em ambos os casos, você pode anexar a essa sessão posteriormente com, por exemplo, screen -d -r name . De man screen :

-d|-D [pid.tty.host]

does not start screen, but detaches the elsewhere running screen session. It has the same effect as typing "C-a d" from screen's controlling terminal. -D is the equivalent to the power detach key. If no session can be detached, this option is ignored. In combination with the -r / -R option more powerful effects can be achieved:

-d -r Reattach a session and if necessary detach it first.

-d -R Reattach a session and if necessary detach or even create it first.

-d -RR Reattach a session and if necessary detach or create it. Use the first session if more than one session is available.

-D -r Reattach a session. If necessary detach and logout remotely first.

-D -R Attach here and now. In detail this means: If a session is running, then reattach. If necessary detach and logout remotely first. If it was not running create it and notify the user. This is the author's favorite.

-D -RR Attach here and now. Whatever that means, just do it.

Note: It is always a good idea to check the status of your sessions by means of screen -list.

Essa página do manual está faltando um detalhe importante aqui - ele deve ser:

-d|-D [pid.tty.host|session name]

    
por 30.04.2016 / 02:31
1

-dmS apenas aplica essas coisas:

  1. Ele será iniciado desanexado. %código%
  2. E você pode nomear sua sessão. %código%

A execução como um daemon indica que ele executará o comando especificado em segundo plano até a execução ser concluída.

Iniciando a tela, em seguida, executando o comando, a desanexação deve ter o mesmo comportamento que usar o -dmS para executar o comando. Frequentemente, executo servidores de jogos ou trabalhos longos iniciando a tela e, em seguida, desanexando com -dm

Você também pode verificar as páginas de manual -S sessioname para mais informações detalhadas sobre as opções.

    
por 29.04.2016 / 16:34