Установка пользовательских ярлыков в Debian

#!/bin/bash
#I am just like a system daemon... 
#I do not need nohup for work, and I should not be called from cron.

#My name is main_safe
#I will become a separeted process even if my father dies... 
#i will check if main is still alive, and if dies i will restart it
#nohup is not needed inside shell script. 
#IMPORTANT: to die is very different from to freeze 
main_safe(){
trap "" HUP
while sleep 120; do
   main&
   wait 
done

}

#My name is main I like to keep restarting php master.php
#everytime it go away... remove wait and I will keep starting master.php with absolutely no reason.
#If you are paranoid you can program me to restart main_safe,
#But what will happen if you try to stop me? Bad things.. so... 
#IMPORTANT: to die is very different from to freeze 
main(){
trap "" HUP
while sleep 60; do

     php master.php & 
     #do whatever you want here

     #uncomment this to prevent two instances of master.php from going up maybe it is necessary:
     wait

done
}


#nohup is not needed in shell script
main_safe& 
pstree -p | grep $! 

Это приемлемо?

0
25.06.2021, 15:29
2 ответа

Если ваш сценарий требует ввода, это означает, что его нужно запустить в терминале, чтобы вы не могли запустить его просто как ярлык. Однако вы можете использовать эмулятор терминала, который предлагает возможность передавать ему команды и запускать этот с помощью вашего ярлыка. Например, используя gnome-terminal, вы можете назначить ярлык для этой команды:

gnome-terminal -- python3 /somefolder/myscript.py

Это откроет терминал, запустит в нем ваш скрипт, позволяя вам ввести ввод, а затем выйдет. Однако терминал останется открытым.

Другой подход заключается в использовании вместо этого псевдонима оболочки. Добавьте эту строку в файл инициализации вашей оболочки (, например.~/.bashrc):

alias foo="python3 /somefolder/myscript.py"

Затем откройте новый терминал, и теперь вы можете запустить foo, который выполнит ваш скрипт.

1
28.07.2021, 11:22

Вы можете сделать что-то вроде gnome-terminal -- "python3 /somefolder/myscript.py", чтобы выполнить его в терминале и увидеть результат.

0
28.07.2021, 11:22

Теги

Похожие вопросы