Çalışan Cronjob @reboot, nfs paylaşımındaki dosyanın mevcut olmadığını döndürür.
Örnek
@reboot python /abs/path/to/script.py
başlangıçta crontab'dan gelen posta "daha fazla veya daha az" yazıyor
/usr/bin/python can't open file "/abs/path/to/script.py": [Error No. 2] No such file or folder.
Komut herhangi bir sorun olmadan komut satırından çalıştırılabilir.
Teori, cronjob, mount çalıştırılmadan önce çalışıyor olmasıdır.
Sorular.
- Bu teori doğru mu?
- Sürücünün takılıncaya kadar işi beklemeye zorlamanın bir yolu var mı? .... Sadece bir uykuya 60 koymaktan başka bir şey. ;) Bunu zaten denedim, ama vurdum ve özledim ve zamanın% 100'ünü hızlı bir şekilde çalıştırmak için senaryoya ihtiyacım var.
Kullanabilirsiniz mountpoint Komutunuzu çalıştırmadan önce montajın yapıldığından emin olmak için komut örn. (varsayım / abs montaj noktasıdır)
#!/bin/bash
while true
do
if mountpoint -q /abs
then
/usr/bin/python /abs/path/to/script.py
break
fi
sleep 10
done
Ağlamadan sonra cronun başlamasından beri problemin ne olduğundan emin değilim. En azından Red Hat ve türevleri. /etc/fstab
ile _netdev
seçenek ya da başka nerede?
Başlangıçta bir şeyi yürütmek için standart yöntem, içeriğe dahil etmektir. /etc/rc.local
. Bu, ağ başlatıldıktan ve diğer tüm hizmetler başlatıldıktan sonra çalıştırılacaktır. (Uzak dosya sistemlerinin montajı dahil.)
(Ya da sadece bir betik yeniden başlatıldıktan sonra betiği yürütmek için bir neden var mı?)
Python betiğinin çalışabildiğinden kesinlikle emin olmak için. Bağlantı noktasının geldiğini doğrulamak için yerel depoda depolanmış bir komut dosyasına sarmanız gerekir.
Gibi bir şey (sözde kod uyarı):
while (!ScriptExists && ErrorCount < 10)
do
mount /my/mount/point
sleep 10
ErrorCount++
done