Linux: háttérben futó shellscript futása kilépéskor megszakad, sehogy nem tudom háttérbe tenni, megoldás?
Asus Rt-N56Urouter: gyári firmware van rajta, Linux operációs rendszerrel. Putty segítségével be lehet lépni (telnettel).
Szeretném, ha alkalmazást tudnék a háttérbe tenni, hogy fusson akkor is, ha kilépek a routerről és ne záródjon be.
Semmilyen módon nem sikerül ezt elérnem. Példa:
legyen a neve testscript ennek a kis script-nek:
#!/bin/sh
sleep 3000
nohup ./testscript > /dev/null 2>&1 &
process listában látszik, hogy fut, de amint kilépek a routerről, már be is fejeződik a futása, visszalépek és nincs a process listában....
Mindennel ez van és nem lehet semmiképpen a háttérbe tenni.
A csökkentett rendszer sajátossága miatt lehet az hogy nem fut? Rémlik hogy régen mintha nem lett volna ilyen probléma, lehet valamit módosítottak firmware-ben nem tudom....
Screen parancs itt nincs, az alábbiakat tudja a router-re fordított Busybox:
arp, ash, awk, basename, blkid, cat, chmod, chown, chpasswd,
clear, cmp, cp, crond, cut, date, dd, df, dirname, dmesg, du, e2fsck,
echo, egrep, env, ether-wake, expr, fgrep, find, flock, free,
fsck.ext2, fsck.ext3, fsck.minix, fsync, grep, gunzip, gzip, head,
ifconfig, insmod, ionice, kill, killall, klogd, less, ln, logger,
login, ls, lsmod, lsusb, md5sum, mdev, mkdir, mknod, mkswap, modprobe,
more, mount, mv, netstat, nice, nohup, nslookup, pidof, ping, ping6,
printf, ps, pwd, readlink, renice, rm, rmdir, rmmod, route, sed,
setconsole, sh, sleep, sort, strings, swapoff, swapon, sync, syslogd,
tail, tar, telnetd, test, top, touch, tr, traceroute, traceroute6,
true, udhcpc, umount, uname, unzip, uptime, usleep, vconfig, vi, watch,
wc, wget, which, zcat, zcip
Van valami megoldás?
Nem értek hozzá, de mondjuk "cronjob"-ként?
Fura... nohup-pal mennie kellene. De nem valami jó, hogy a dev/null-ba küldöd az összes output-ot, mert az esetleg informatív lehet, hogy miért hal meg a process. Futtasd így:
nohup ./script.sh.sh > stdout.log.txt 2> stderr.log.txt &
Majd megnézni, hogy leállás után mi van a két file-ben. Illetve, meg lehet próbálni így:
(./script.sh.sh )&
Sorry, ha ezeket már próbáltad.
Próbáld átnézni ezeket a gugli találatokat, hátha segít:
linux run process background after logout
Amúgy én egy service scriptet csinálnék rá, hogy a rendszer maga indítsa el, tehát az init process legyen a szülője, ne a terminál process.
A router ROM flash-be nem nyúlhatok bele azért mert én init script-et szeretnék indítani. :-)
Tehát mivel nem írható a rendszer ezért elég nehéz lenne bármit betennem.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!