Mam program w języku Python, który kopiuje zawartość urządzeń USB podłączonych do mojego komputera, w tym przypadku jest to tablet z Androidem. Skrypt używa pyudev
do wykrywania urządzeń, a następnie GVfs
do ich montowania.
Chciałem uruchomić skrypt i uruchomić go w tle, więc nie muszę go uruchamiać za każdym razem. Próbowałem go /etc/init/
uruchomić, ale działanie GVfs
jako root powoduje problemy, więc postanowiłem uruchomić skrypt za pośrednictwem cron
. Mam ustawiony, aby rozpocząć o określonej godzinie, jeśli to zrobię ps -aux
i mogę zobaczyć proces na liście, jednak jeśli podłączę urządzenie, nic się nie stanie, pliki nie zostaną skopiowane.
Jeśli uruchomię skrypt ręcznie, działa on bez żadnych problemów.
To właśnie mam w swoim crontabie.
45 10 * * * cyberbemon /home/cyberbemon/Development/python/usb-dumper-1.0/build/lib.linux-x86_64-2.7/usb-dumper/./usb-dumper.py
`
Python używa tej env #!/usr/bin/env python
Próbowałem zalogować dane wyjściowe programów do pliku, jak to cyberbemon /home/cyberbemon/Development/python/usb-dumper-1.0/build/lib.linux-x86_64-2.7/usb-dumper/./usb-dumper.py > /home/cyberbemon/usb-dumped/log.txt 2>&1
Ale ten plik jest pusty.
Mam źródło programu stąd: https://codingteam.net/project/usb-dumper/download
2>&1
i zobacz, co się stanie.Odpowiedzi:
Jeżeli edytowałeś Yr crontab użytkownika, a następnie stłumić / usunąć nazwę użytkownika
cyberbemon
, który poprzedza długą drogę prowadzącą do skryptu yr. Nie potrzebujesz tam nazwy użytkownika.Jeśli się nie mylę, na początku określasz środowisko użytkownika.
#!
Nie tylko!
. Może to być po prostu literówka w poście lub zapomniałeś uciec przed znakiem funta wewnątrz bloku kodu, pisząc swój post (tak jak to\#!
). Powinien więc przeczytać:#! / usr / bin / env python
Może to tylko ja, ale nie znam ścieżek, które zawierają
/./
gdzieś pośrodku, jak w:... bez dodanych spacji. Zwykle w większości typów powłok
.
jest:synonim cmd,
source
gdy jest używany samodzielnie przed nazwą pliku.oznacza ukryty plik, gdy poprzedza nazwę pliku.
jest używany w wyrażeniu regularnym w celu dopasowania jednego znaku
wskazuje bieżący katalog roboczy, gdy jest używany w ścieżkach, jak na przykład w
$ cd $ HOME / Desktop; pwd
/ home / cyberbemon / Desktop
$ cp $ HOME / .bashrc.
Polecam przejście do katalogu, w którym jest przechowywany skrypt Pythona, a następnie w terminalu uruchom polecenie
pwd
. Otrzymasz pełną ścieżkę do skryptu yr.źródło