iPhone üzerinde mac os x in tek kullanıcılı, bazı işlev ve pathleri değiştirildiği bir versiyon var; Ancak sonuçta mac os x küçültülmüş bir versiyonu. mac os x 10.4 tiger ile UNIX türevi olan işlevlerinden bazıları -cron
, xinetd
, mach_init
, ve init
- tek bir yöneticide toplandı launchd (launch daemon).
launch daemon sistem ve başlangıç scriptlerinin çalışması , sistemin kullanıcı için hazırlanmasından sorumludur.
Açılışta çalışması için
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>localhost.etc.rc.command</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/daemon</string>
<string>argument</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
yazdığımız .plist dosyasını iPhone üzerinde /Library/LaunchDaemons path’ine kaydediyoruz.Label yerine sistemde olmayan eşsiz bir uygulama/script adı yazılmalı.ProgramArguments key isimli noduna görüldüğü gibi dizi tanımlanıyor bu dizinin elemanları çoğaltılabilir. örnek:
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/periodic</string>
<string>daily</string>
<string>-f</string>
</array>
şu anlama gelir
./usr/sbin/perodic daily -s
yüklenen .plist dosyasını iPhone u yeniden başlatmadan ssh ile launchctl kullanarak yükleyebilir, kaldırabilir ve bazı diğer işlevlerle kullanabilirsiniz. yüklü olan .plist ler için
launchctl list
interval 5 dakika sürede de bir devamlı
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>300</integer>
<key>Label</key>
<string>com.proxtouch.locatable</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/touch-startup</string>
</array>
<key>Nice</key>
<integer>20</integer>
<key>StandardOutPath</key>
<string>/var/root/daemon/out.log</string>
<key>StandardErrorPath</key>
<string>/var/root/daemon/error.log</string>
<key>Debug</key>
<true/>
</dict>
</plist>
~/var/root üzerinde daemon klasörü örnek oluşturulmuştur.iphone üzerinde root kullanıcısı default kullanıcıdır. diğer kullanışlı path ~/User ( symbolic link ) ~/var/mobile
launchctl load com.proxtouch.locatable.plist
launchctl unload com.proxtouch.locatable.plist
launchd parametreler vs.. external link
wget 192.168.1.13/proxy/touch.php -O /dev/null
launchctl start com.proxtouch.locatable
launchctl stop com.proxtouch.locatable
Hiç yorum yok:
Yorum Gönder