Bir kabuk betiğinden program çalıştır, ancak yalnızca bir işlem gibi mi davranıyorsunuz?


12

Bir kabuk betiğinden bir uygulama yürütmek ama başka bir işlem oluşturmak bir yolu var mı. Sadece bir süreç gibi görünmesini istiyorum . Kabuk betiğimin yeni bir işlemle değiştirilip değiştirilmemesi veya çağrılan bir uygulama sona erdikten sonra devam edip etmeyeceği önemli değildir.
Bu aynı zamanda önceki sorumu da çözmeli: /ubuntu/247632/is-there-a-way-to-associate-additional-application-launcher-with-an-app
Yardımınız için çok teşekkür ederim .

Yanıtlar:


7

execKomutu kullanabilirsiniz :

$ help exec
exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
    Replace the shell with the given command.

    Execute COMMAND, replacing this shell with the specified program.
    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
    any redirections take effect in the current shell.

    Options:
      -a name   pass NAME as the zeroth argument to COMMAND
      -c        execute COMMAND with an empty environment
      -l        place a dash in the zeroth argument to COMMAND

    If the command cannot be executed, a non-interactive shell exits, unless
    the shell option `execfail' is set.

    Exit Status:
    Returns success unless COMMAND is not found or a redirection error occurs.

Misal:

user@host:~$ PS1="supershell$ "
supershell$ bash
user@host:~$ PS1="subshell$ "
subshell$ exec echo hello
hello
supershell$ 

Gördüğünüz gibi, alt kabuk ile değiştirildi echo.


Cevabınız için teşekkür ederim. Örneğin şunu çalıştırabilirim: "exec -a firefox gedit &" ve gedit bir başlatıcıda Firefox olarak görünür. Ancak uygulamaların çoğu için çalışmaz.
2013'te

Sorun, büyük olasılıkla yeni bir süreç oluşturmama rağmen, her iki adı da, orijinal olanı ve yeni tanımlanmış olanı kullanmasıdır. PS çıkışı: 1000 6151 0,0 0,0 13720 944 puan / 2 R + 10:49 0:00 grep --color = auto firefox | 10006153 0,0 0,0 13716 940 puan / 2 S + 10:49 0:00 grep
--color

&Komutunuzun sonunda neden kullandığınızı sorabilir miyim ? Yani tam olarak ne olduğu, bir kabuktaki komutu çalışacaktır değil istiyorum.
Andrea Corbellini

Evet, sadece terminalde deniyordum, bir kabuk komut dosyası değil.
Ocak'ta zubozrout

2
Bu yüzden, önceki sorunuzu okudum ve bazı şeyleri yanlış anladığınız anlaşılıyor. Sen karıştırıyorsun süreci ile sıfırıncı argüman ile PID ile çizgi fırlatıcı . Ayrıca yanlış soruyu soruyorsunuz. İlk olarak sormak istediğiniz şey: çizgi fırlatıcıları süreçlerle nasıl ilişkilendirir? Bu sorunun cevabını bulduğunuzda, orijinal sorunuza da bir cevap bulacaksınız.
Andrea Corbellini
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.