Я пытаюсь автоматически выполнить набор процессов при системном запуске, после того, как пользователь войдет в систему. Вот 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
Я не могу больше находить детей. Что происходит в таком контексте?
Спасибо за Ваше время и жаль о моем плохом английском языке.
Файлы в /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
, переименуйте его соответственно, иначе это не будет получено.