Странное поведение сценария при выполнении от/etc/profile.d/

Я пытаюсь автоматически выполнить набор процессов при системном запуске, после того, как пользователь войдет в систему. Вот create_processes.py сценарий, который я буду использовать для запуска некоторых процессов:

#!/usr/bin/python
import subprocess 

def f1():
    while True:
        time.sleep(2)
        print "I'm alive"
if len(sys.argv) < 2:
    print "assuming main"
    subprocess.Popen([""/usr/bin/python",sys.argv[0],"f1"])
elif sys.argv[1] =="f1":
    f1()

Если я непосредственно вызываю его или если я пробую nohup python create_processes.py 2>&1 & все хорошо работает.

Проблема повышается, когда я пытаюсь заставить ее работать вызванный сценарием в/etc/profile.d/папке. Такой сценарий просто содержит вышеупомянутую команду. Используя ps Я не могу больше находить детей. Что происходит в таком контексте?

Спасибо за Ваше время и жаль о моем плохом английском языке.

1
задан 17 September 2019 в 00:27

1 ответ

Файлы в /etc.profile.d/ получены когда /etc/profile выполняется.

Вот соответствующие строки от /etc/profile:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

От этого выравнивает, мы видим, что только файлы, который называет концы с .sh будут полученными.

Если название Вашего пользовательского файла не заканчивается .sh, переименуйте его соответственно, иначе это не будет получено.

0
ответ дан 7 December 2019 в 18:45

Другие вопросы по тегам:

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