ආරම්භයේදී ස්ක්‍රිප්ට් ක්‍රියාත්මක කරන්න


196

මගේ රාස්ප්බෙරි පයි ආරම්භ වන විට මම පිටපතක් ක්‍රියාත්මක කිරීමට උත්සාහ කරමි. වෙබ් බ්‍රව්සරය ස්වයංක්‍රීයව විවෘත වීමට මම කැමතියි.

මම සරල විසඳුමක් සෙවීමට උත්සාහ කර ඇත්තෙමි, (මගේ ස්ක්‍රිප්ට් සමහර "ආරම්භක" නාමාවලියකට දැමීම හෝ ඒ හා සමාන දෙයක් වැනි) නමුත් මම එවැනි කිසිවක් දකින්නේ නැත.

මම අප්ස්ටාර්ට් ගැන සොයා බැලුවෙමි , නමුත් එය ක්‍රියාත්මක වන්නේ කෙසේදැයි වටහා ගැනීමට මම වෙහෙසෙමි. මම අත්හදා බැලූ ඕනෑම ස්ක්‍රිප්ට් එකක් මම ඒවා පරීක්ෂා කරන විට ක්‍රියා කර නැත.


5
ඔබ ක්‍රියාත්මක කරන්නේ කුමන මෙහෙයුම් පද්ධතියද? මම මගේ පයි හි භාවිතා කරන FreeBSD හි, ඔබට ආරම්භක ස්ක්‍රිප්ට් /usr/local/etc/rc.d/ වෙත එක් කළ හැකිය, නැතහොත් /etc/rc.local වෙත දේවල් එකතු කරන්න. විවිධ ලිනක්ස් ඩිස්ට්‍රෝස් වලට විවිධ නිර්දේශිත ක්‍රම තිබේ. ඔබ එය මත X ධාවනය කරන්නේ නම්, ඔබේ .xinitrcහෝ .xsessionගොනුවට දේවල් එකතු කිරීම පිළිබඳව සොයා බැලිය යුතුය .
ghoti

1
X ආරම්භක ක්‍රියාවලිය පිළිබඳ වැඩි විස්තර මෙතැනින් සොයාගත හැකිය .
ghoti

7
කරුණාකර සටහන් කර ගන්න මෙහි පිළිගත් පිළිතුර සමහර caveats ඇති අතර තාක්ෂණික නොවන විශේෂ තත්වයන් යටතේ හැර ඇරඹුම් කිසිවක් ආරම්භ කරන්න. එය ප්රවේශමෙන් කියවන්න.
ගෝල්ඩිලොක්ස්

1
ඔබ ඉල්ලන්නේ ඔබ පිවිසෙන විට ක්‍රියාත්මක වන ස්ක්‍රිප්ට් එකක් මිස pi ආරම්භ වන විට හෝ ආරම්භයේදී නොවේ. ඉතා වෙනස් කරුණු දෙකක් වන අතර මාතෘකාව ගූගල් සෙවුම් ප්‍රති .ල මඟ හැරේ.
IAmNaN

1
ආරම්භයේදී ඔබට node.js ස්ක්‍රිප්ට් ස්වයංක්‍රීයව ආරම්භ කිරීමට අවශ්‍ය නම් , pm2 භාවිතා කරන්න. එය විශේෂයෙන් නිර්මාණය කර ඇත්තේ ඒ සඳහා ය; ආරම්භයේදී ස්ක්‍රිප්ට් ධාවනය කිරීම, ලොග් ලිපිගොනු වල ඔවුන්ගේ ස්ථාවරය සහ ස්ටෙඩර් සොයා ගැනීම, ස්ක්‍රිප්ට් නැවත ආරම්භ කිරීම යනාදිය සඳහා
මහේෂ්

Answers:


201

ආරම්භයේ දී මිඩෝරි ධාවනය කිරීම සඳහා, මෙම නිබන්ධනය දෙස බලන්න . DIY විසඳුම් සඳහා, කියවන්න.


ඔබ පහළට ඔබේ තිර රචනය ක්රියාත්මක විධානය එකතු කල හැක .bashrcබව සෑම අවස්ථාවකදීම පර්යන්ත විවෘත (හෝ නව උදාහරණයක් ක්රියාත්මක ඔබගේ කේත රචනය ක්රියාත්මක bash) .

  1. ඔබ piෆෝල්ඩරයේ සිටින බවට වග බලා ගන්න :

    $ cd ~
    
  2. ගොනුවක් සාදා ගොනුව තුළ ධාවනය කිරීම සඳහා පිටපතක් ලියන්න:

    $ sudo nano superscript
    
  3. සුරකින්න සහ පිටවීම: Ctrl+ X, Y,Enter

  4. .bashrcවින්‍යාසය සඳහා විවෘත කරන්න :

.bashrcඇත නොවේ පිටපත් ක්රියාත්මක කිරීමට අදහස් කරන.

පුරනය නොවන අන්තර්ක්‍රියාකාරී කවචයක් ආරම්භ කරන සෑම අවස්ථාවකම එය ක්‍රියාත්මක වන අතර එය කවචය වින්‍යාස කිරීමට භාවිතා කරයි.
~/.bashrc: executed by bash(1) for non-login shells.

   $ sudo nano .bashrc
  1. පහළට අනුචලනය කර පේළිය එක් කරන්න: ./superscript

  2. සුරකින්න සහ පිටවීම: Ctrl+ X, Y,Enter


ඔබ කොන්සෝලය වෙත ආරම්භයේදී ක්‍රියා කරන විසඳුමක් සොයන්නේ නම් , මෙම සබැඳිය දෙස බලන්න . මූලික අඩු කිරීම:

  1. ඔබේ ආරම්භක ස්ක්‍රිප්ට් සඳහා ගොනුවක් සාදන්න සහ ඔබේ ස්ක්‍රිප්ට් ගොනුවේ ලියන්න:

    $ sudo nano /etc/init.d/superscript
    
  2. සුරකින්න සහ පිටවීම: Ctrl+ X, Y,Enter

  3. ස්ක්‍රිප්ට් ක්‍රියාත්මක කළ හැකි කරන්න:

    $ sudo chmod 755 /etc/init.d/superscript
    
  4. ආරම්භයේදී ක්‍රියාත්මක කිරීමට ස්ක්‍රිප්ට් ලියාපදිංචි කරන්න:

    $ sudo update-rc.d superscript defaults
    

ඔබ LXDE පරිසරයට ආරම්භ කරන විට ස්ක්‍රිප්ටයක් ක්‍රියාත්මක වීමට අවශ්‍ය නම් , ඔබට මෙම රාස්ප්බෙරි පයි සංසද පෝස්ට් එක බලන්න :

  1. වෙත සංචාලනය කරන්න ~/.config/lxsession/LXDE-pi

  2. autostartඑම ෆෝල්ඩරයේ ගොනුව විවෘත කරන්න:

    $ sudo nano autostart
    
  3. @midoriනව පේළියක් එක් කරන්න . ඔබට පයිතන් ස්ක්‍රිප්ට් වැනි දෙයක් ධාවනය කිරීමට අවශ්‍ය නම්, @python mypython.pyනව පේළියක් වැනි දෙයක් දමන්න . ස්ක්‍රිප්ට් ගොනුවක් ධාවනය කිරීම වනු ඇත @./superscript, නමුත් කිසියම් හේතුවක් නිසා ස්ක්‍රිප්ට් එක අනන්ත පුඩුවක් තුළ ක්‍රියාත්මක වේ (සමහර විට මෙය නතර වනු ඇත).

  4. සුරකින්න සහ පිටවීම: Ctrl+ X, Y,Enter

  5. ඔබේ රාස්ප්බෙරි පයි LXDE පරිසරයට නැවත ආරම්භ කරන්න.


1
ආරම්භයේදී මිඩෝරි පිහිටුවීම පිළිබඳ නිබන්ධනය මා සොයන දෙයයි. එවැනි සරල දෙයක් කිරීමට බොහෝ ක්‍රම ඇත්තේ මන්දැයි නිශ්චිතවම කිව නොහැක, නමුත් එය දැන් ක්‍රියාත්මක වීම ගැන මම සතුටු වෙමි.
ටයිලර් මරී

2
s syb0rg මම ssh හරහා ලොග් වුවහොත් පිවිසුම් කොටසේ ධාවනය චාම් (+1) මෙන් ක්‍රියා කරයි, නමුත් lxde ඩෙස්ක්ටොප් සැසිය ආරම්භ වන විට නොවේ. එය කිරීමට ක්‍රමයක් තිබේද?
ජෝර්ජ් ප්‍රොෆෙන්සා

1
E ජෝර්ජ් ප්‍රොෆෙන්සා ඔබ එසේ කරන විට $ sudo startx?
syb0rg

3
පයිටන් ස්ක්‍රිප්ට් ක්‍රියාත්මක වන බව පෙන්වා දීමට අවශ්‍ය වූ නමුත් කිසියම් දෝෂයක් තිබේ නම් එය / etc / xdg / lxsession / LXDE / autostart ක්‍රමය භාවිතා කරමින් පසුබිමේ කොතැනක හෝ පවතිනු ඇත. .barshrc භාවිතා කිරීමෙන් දෝෂ ද හෙළි වනු ඇත, නමුත් ස්ක්‍රිප්ට් එක මුලින් ම තදින් ඇති බව තහවුරු කර ගැනීම ඇත්තෙන්ම වැදගත් ය (එය දුෂ්කර ආකාරයකින් සොයා ගන්නා ලදී :))
ජෝර්ජ් ප්‍රොෆෙන්සා

8
.bashrcපද්ධතිය ආරම්භ වන විට හෝ පරිශීලකයෙකු ලොග් වූ විට කියවන්නේ නැත , නව පර්යන්තයක් විවෘත කිරීමේදී පමණි (තවද පරිශීලකයා නව පර්යන්තයක් විවෘත කරන සෑම අවස්ථාවකම එය කියවනු ලැබේ). මෙම පිළිතුරට බොහෝ ඉහළ නැංවීම් ලැබීම ගැන මට කරදරයක් තිබේ: පළමු කොටස සරල වැරදිය . GUI වැඩසටහනක් ක්‍රියාත්මක කිරීම සඳහා තෙවන කොටස නිවැරදි ය.
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

50

බොහෝ අය එය කරන ආකාරය මා දැක ඇති ආකාරය (රාස්ප්බෙරි පයි සංසද දෙස බලන්න), සහ සාර්ථකත්වය මා විසින්ම කර /etc/rc.localඇත.

ඔබ මෙහි ./myscriptකළ යුත්තේ rc.local පෙළ ගොනුව තුළ පමණි. එය පයිතන් වල නම්, දමන්න python myscript.py.

මෙය වචනානුසාරයෙන් "සරල විසඳුමකි, (මගේ ස්ක්‍රිප්ට් සමහර" ආරම්භක "නාමාවලියකට දැමීම වැනි හෝ ඒ හා සමාන දෙයක්)" - සමහර විට ඔබට ප්‍රශ්න ඇති විට සංසදවල සොයන්න, මෙම විසඳුම පළමු ප්‍රති results ල 4 හි ඉදිරිපත් විය. ගූගල් සෙවුම!


5
FYI rc.local පෙරනිමියෙන් ස්ක්‍රිප්ට් කිසිවක් නොකරන අතර ක්‍රියාත්මක කළ හැකි බිටු වෙනස් කිරීම පිළිබඳව විවිධ අදහස් දක්වයි. මෙය සත්‍ය නොවන අතර 0 පිටවීමට පෙර ඔබේ ස්ක්‍රිප්ට් සඳහා විධානය ඇතුළත් කරන්න, එය ආරම්භයේදී ක්‍රියාත්මක වේ. ඔබගේ ස්ක්‍රිප්ට් පසුබිමේ ධාවනයෙන් පිටවන බවට වග බලා ගන්න හෝ එය පිවිසුම් විමසුම අවහිර කරයි. ඔව්, ඒක තමයි මම කළේ.
කොල්ලකෑම


@rob ඔබ අදහස් කරන්නේ පිටපත ක්‍රියාත්මක කළ හැකි ලෙස සැකසීමට ඔවුන් යෝජනා කරනවාද? විධාන මඟින් ස්ක්‍රිප්ට් ධාවනය කිරීමෙන් මෙය ප්‍රශ්නයේ දී අවම වේ python myscript.py. ඔබට එය chmod + x කර එකතු කිරීමට අවශ්‍ය නම්, ඔබ එකම ඩිරෙක්ටරියේ හෝ ගොනුවට නිරපේක්ෂ හෝ සාපේක්ෂ මාර්ගයක සිටී නම් කොතැනද යන්න මඟින් ඔබට #! /bin/pythonස්ක්‍රිප්ට් ධාවනය කළ හැකිය . $pathtofile/myscript.py$pathtofile.
JFA

1
බ්‍රව්සරයක් වැනි GUI වැඩසටහනකට එය හොඳ නැත. /etc/rc.localයනු පද්ධති සේවා ආරම්භ කිරීම පමණි (පරිශීලක අතුරුමුහුණතක් නොමැති වැඩසටහන්).
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

1
, වැනි මෙම නූල් මත නිවැරදි පිළිතුරු එක් ErickM.Sprengel භාවිත @ මේ එක .
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

33

එය crontab එකට එකතු කරන්න

Crontab නිශ්චිත වේලාවට විධාන ක්‍රියාත්මක කරයි.


ගොනුව සංස්කරණය කරන්න:

sudo crontab -e

ගොනුවට පේළියක් එක් කරන්න (මෙහි පයිතන් පිටපතක්):

@reboot python3 /home/pi/Desktop/exemple.py &

3
මෙහි ටිකක් නිස්සාර වීමට නම්, තාක්‍ෂණිකව එය විධානය ක්‍රියාත්මක කරන්නේ ක්‍රොන්ටාබ් නොවේ, කෙසේ හෝ වේ. එකතු කිරීම සඳහා ලැයිස්තුගත කර ඇති රේඛාව සම්බන්ධයෙන්, මෙහි අර්ථ දක්වා ඇති විධානයන් සඳහා සම්පූර්ණ මාර්ග තැබීම සුදුසුය (මේ අවස්ථාවේ දී සම්පූර්ණ මාර්ගය python3), මෙහි
han ානිමා

සරල බව නිසා මම නිතරම භාවිතා කළ ක්‍රමය මෙයයි. +1
පැට්‍රික් කුක්

බ්‍රව්සරයක් වැනි GUI වැඩසටහනකට එය හොඳ නැත. /etc/rc.localයනු පරිශීලක අතුරුමුහුණතක් නොමැති වැඩසටහන් ආරම්භ කිරීම පමණි.
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

3
බොහෝ වේලාවක් ගත කිරීමෙන් පසු එය rc.local සහ init.d සහ අනෙකුත් සියලු දේ සමඟ වැඩ කිරීමට උත්සාහ කරයි .. මෙය කෙලින්ම ක්‍රියාත්මක විය! ස්තූතියි වෙන් කිරීම!
පියොටර් කුලා

4
මෙය කිසියම් හේතුවක් නිසා rpi os හි ක්‍රියා නොකරයි
ඩෙනිස්

16

Xorg යෙදුම් ස්වයංක්‍රීයව ආරම්භ කිරීම

ඔබට ආරම්භ කිරීමට අවශ්‍ය ස්ක්‍රිප්ටයට xorg සැසියක් අවශ්‍ය නම්, ඔබ භාවිතා කරන ඩෙස්ක්ටොප් පරිසරය මත පදනම්ව ක්‍රියා කිරීමට හෝ නොවීමට ඉඩ ඇති නිදහස් ඩෙස්ක්ටොප් ඔටෝස්ටාර්ට් පිරිවිතර අනුගමනය කිරීමට උත්සාහ කළ හැකිය.

විකල්පයක් ලෙස, https://wiki.archlinux.org/index.php/autostarting හි විස්තර කර ඇති පරිදි ඔබේ විශේෂිත ඩෙස්ක්ටොප් පරිසරය ඉලක්ක කළ හැකිය .

ස්ක්‍රිප්ට් එකක් systemd සේවාවක් ලෙස ක්‍රියාත්මක කිරීම

ඔබගේ කේත රචනය daemon හෝ සේවය "යන විස්තරය ගැලපෙන, ඔබේ පද්ධතිය ක්රියාත්මක වන්නේ නම් systemd raspbian හා වඩාත්ම නවීන linuces සඳහා නඩුව වන, එසේ නම් ඔබ systemd සේවාවක් ලෙස ක්රියාත්මක කිරීමට ඔබේ තිර රචනය සැකසිය හැක - මෙම පුරා කැටිති පාලනය සපයයි ජීවන චක්‍රය සහ ක්‍රියාත්මක කිරීමේ පරිසරය මෙන්ම ස්ක්‍රිප්ට් ආරම්භ කිරීම සඳහා (නැවත) පූර්ව කොන්දේසි, එනම් ජාලය ක්‍රියාත්මක වීම සහ ක්‍රියාත්මක වීම. අසමත් වූ අවස්ථාවකදී සේවා නැවත ආරම්භ කිරීම වින්‍යාසගත කළ හැකිය ( Restart=alwaysසහ නැවත ආරම්භ කිරීම අතර ප්‍රමාදය RestartSec=10).

පද්ධතිමය භාවිතය සඳහා ඔබේ systemd ඒකක ගොනුව යටතේ සාදන්න /etc/systemd/system, උදා vim /etc/systemd/system/autossh.service:

[Unit]
Description=Autossh keepalive daemon
## make sure we only start the service after network is up
Wants=network-online.target
After=network.target

[Service]
## use 'Type=forking' if the service backgrounds itself
## other values are Type=simple (default) and Type=oneshot
Type=forking
## here we can set custom environment variables
Environment=AUTOSSH_GATETIME=0
Environment=AUTOSSH_PORT=0
ExecStart=/usr/local/bin/ssh-keep-alive.sh
ExecStop=/usr/bin/killall -9 autossh
### NOTE: you can have multiple `ExecStop` lines
ExecStop=/usr/bin/killall ssh
# don't use 'nobody' if your script needs to access user files
# (if User is not set the service will run as root)
#User=nobody

# Useful during debugging; remove it once the service is working
StandardOutput=console

[Install]
WantedBy=multi-user.target

මෙයද බලන්න:

දැන් අපි සේවාව පරීක්ෂා කිරීමට සූදානම්:

systemctl start autossh

සේවාවේ තත්වය පරීක්ෂා කිරීම:

systemctl status autossh

සේවාව නැවැත්වීම:

systemctl stop autossh

සේවාව අපේක්ෂිත පරිදි ක්‍රියාත්මක වන බව ඔබ තහවුරු කළ පසු එය සක්‍රීය කරන්න:

systemctl enable autossh

සටහන: ආරක්ෂක අරමුණු සඳහා ස්ක්‍රිප්ට් ධාවනය වන systemdආකාරය හා සමාන සීමිත පරිසරයක crontabස්ක්‍රිප්ට් ධාවනය කරනු ඇත, එබැවින් පෙර පැවති පද්ධති විචල්‍යයන් පිළිබඳව කිසිදු උපකල්පනයක් නොකරන්න. Environmentඔබේ ස්ක්‍රිප්ටයට නිශ්චිත විචල්‍යයන් අර්ථ දැක්වීමට අවශ්‍ය නම් යතුරු භාවිතා කරන්න . set -xඔබගේ බෑෂ් ස්ක්‍රිප්ටයේ ඉහළින් එකතු කර ධාවනය systemctl status my_serviceකිරීමෙන් ඔබගේ ස්ක්‍රිප්ට් අසමත් වීමට හේතුව හඳුනා ගැනීමට උපකාරී වේ. Tumb එක් රීතියක් ලෙස, හැම විටම ඇතුළු සියලු දේ සඳහා පරම මාර්ග භාවිතා echoසහ cat, ඒම හෝ ඔබගේ $ PATH අර්ථ දක්වන්න.


8

මෙය මගේ ශත දෙක තුළට විසි කිරීමට මට අවශ්‍යය, මෙය පැරණි ප්‍රශ්නයක් වුවද සාමාන්‍යයෙන් සරල දෙයක් කිරීමට ඉල්ලා ඇත - ඔටෝස්ටාර්ට්. මෙම ප්රශ්නය සඳහා සියලු පිළිතුරු වල යෝජිත විසඳුම් මම උත්සාහ කළෙමි. ඔවුන්ගෙන් කිසිවෙක් මා වෙනුවෙන් වැඩ කළේ නැත. මම රාස්ප්බෙරි සමඟ රාස්ප්බෙරි පීඅයි මොඩල් 2 භාවිතා කරමි.

මගේ යෙදුම ස්වයංක්‍රීයව ස්වයංක්‍රීයව ආරම්භ කිරීමට මට ඇති එකම ක්‍රමය පහත පරිදි ස්ක්‍රිප්ට් එකකි. මම සාර්ථකව කියන්නේ මගේ අයදුම්පත වැරදි වැඩ මාර්ගයකින් ආරම්භ කිරීම වැනි කිසිදු ගැටළුවක් නොමැතිව අපේක්ෂිත පරිදි ආරම්භ කළ බැවිනි.

1.sh දිගුව සහිත හිස් ගොනුවක් සාදන්න සහ ඔබට අවශ්‍ය ඕනෑම දෙයක් නම් කරන්න.

2. ඔබ විසින් නිර්මාණය කරන ලද ස්ක්‍රිප්ට් නාමයට "ඔබගේ යෙදුම් නම" වෙනස් කිරීම හැර පහත සඳහන් දේ හරියටම පිටපත් කර අලවන්න.

 #! /bin/sh

 ### BEGIN INIT INFO
 # Provides:          noip
 # Required-Start:    $remote_fs $syslog
 # Required-Stop:     $remote_fs $syslog
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Simple script to start a program at boot
 ### END INIT INFO

 #change /direct/path/to/your/application to the path your application is in.
 cd /direct/path/to/your/application      # example cd /home/pi/myprogram/

 #change YourProgramExactName to Exact name of your program that you want to auto start
 ./YourProgramExactName

 exit 0 
  1. ඉන්පසු, ස්ක්‍රිප්ට් ගොනුව ඔබගේ යෙදුම් ෆෝල්ඩරය තුළ සුරකින්න

  2. ඉන්පසු, /home/pi/.config/autostartෆෝල්ඩරය විවෘත කරන්න . එය ඔබගේ නඩුවේ වෙනස් විය හැකිය. ඔබගේ නිවසේ ෆෝල්ඩරය විවෘත කර සැඟවුණු ෆෝල්ඩර බැලීමට ඉඩ දෙන්න. විවෘතයි .config/autostart. ඔබට ස්වයංක්‍රීය ආරම්භක ෆෝල්ඩරය නොපෙනේ නම් .config ෆෝල්ඩරය තුළ autostart නමින් ෆෝල්ඩරයක් සාදන්න.

  3. ස්වයංක්‍රීය ආරම්භක ෆෝල්ඩරය තුළ ඔබ පහත පරිදි නිර්මාණය කළ ස්ක්‍රිප්ට් ගොනුවට කෙටිමඟක් සෑදිය යුතුය. දිගුව සමඟ හිස් ගොනුවක් සාදන්න.desktop .

  4. පිටපතක් සහ හිස් ඩෙස්ක්ටොප් ගොනු පහත සඳහන් ඇලවීම ඔබට වෙනස් කිරීමට අවශ්ය වනු ඇත හැර Comment, Name, Exec, Pathහා Iconක්ෂේත්රයේ වටිනාකම.

    [Desktop Entry]
    Comment=
    Exec=/path/to/Your/application/Name-of-the-script-file (.sh)
    Icon=/Path/to/Your/application/Icon/IconName
    Name=YourApplicationEXACTNAME
    Path=/Path/to/Your/Application-ONLY
    Type=Application
    
  5. අවශ්‍ය සියලුම ක්ෂේත්‍ර වෙනස් කිරීමෙන් පසු ගොනුව සුරකින්න සහ වසා දමන්න. ඔබ ඉවරයි. එය පරීක්ෂා කරන්න.


තාක්ෂණික වශයෙන් මෙම ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කරන්නේ නිශ්චිත පරිශීලකයෙකු විසින් නොව පද්ධතිය විසිනි - එබැවින් සමහර විට ඔබේ යෙදුම වඩා හොඳ වන්නේ /usr/local/bin/ApplicationName...?
SlySven

LySlySven “පද්ධතිය” යනු නිශ්චිත පරිශීලකයෙකි.
සීමිත සමඟි කිරීම

එය root (UID = 0) හෝ pi පරිශීලකයා (UID ~ 500 හෝ 1000 IIRC) ලෙස ක්‍රියාත්මක වේද - එය root ලෙස හෝ වෙනත් පද්ධතියක් ලෙස ක්‍රියාත්මක වන්නේ නම් UID (500 ට අඩු) නම් ස්ක්‍රිප්ට් ගොනුව ගබඩා කිරීම සම්ප්‍රදායිකව හොඳ පුරුද්දකි ( හෝ වෙනත් උපාංගයක් සමඟ ගැටළුවක් ඇතිවිය යුතු homeනම් (උදා: එය වෙනම උපාංගයක් නම්) ස්ක්‍රිප්ට් (හෝ ක්‍රියාත්මක කළ හැකි) ගොනුවක් ලබා ගත නොහැකි වූ විට ගැටලුවක් ඇති නොවනු ඇත. පද්ධතිය නැවත තනි පරිශීලක /bin/shකවචයකට අසමත් වේ ! වර්තමානයේ systemdමාර්ගය දෙකම සවි කිරීම /සහ /usrPID 1 ආරම්භ කිරීමට පෙර ...
SlySven

5

මටත් මේ ගැන කරදරයක් ඇති වුණා. රාස්ප්බෙරි Pi3 ධාවනය වන රාස්බියන් මත මම කළේ මෙයයි:

  1. ඔබේ මූල නාමාවලියෙහි ආරම්භක කවච පිටපතක් සාදන්න (මම මගේ "දියත් කිරීම" ලෙස නම් කළෙමි):

sudo leafpad launch.sh

  1. ගොනුව සුරකින්න
  2. LXDE-pi autostart ගොනුව සංස්කරණය කරන්න

sudo leafpad /home/pi/.config/lxsession/LXDE-pi/autostart

  1. මෙය එම ගොනුවේ පහළට එක් කරන්න

./launch.sh

  1. නැවත ආරම්භ කරන්න

4

රාස්ප්බෙරි පයි 3 ධාවනය වන රාස්බියන් ස්ට්රෙච් එකේ මම කළේ මෙයයි:

LXDE-pi autostart ගොනුව සංස්කරණය කරන්න

    sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

මෙය එම ගොනුවේ පහළට එක් කරන්න

    @sudo python3 /path/to/your/script.py

සුරකින්න සහ නැවත ආරම්භ කරන්න


2

ක්රමය 1:

පිවිසීමේදී ස්වයංක්‍රීයව විධානයක් දියත් කිරීම සඳහා, විධානය නම් කරන ලද ගොනුවකට දමන්න

.bashrc

පරිශීලක නාමාවලියෙහි (උදාහරණයක් ලෙස / home / pi)

.bashrcනොවේ පිටපත් ක්රියාත්මක කිරීමට අදහස් කරන.

පුරනය නොවන අන්තර්ක්‍රියාකාරී කවචයක් ආරම්භ කරන සෑම අවස්ථාවකම එය ක්‍රියාත්මක වන අතර එය කවචය වින්‍යාස කිරීමට භාවිතා කරයි.
~/.bashrc: executed by bash(1) for non-login shells.

උදාහරණයක් ලෙස, ගොනුවේ අඩංගු විය හැකිය

chromium-browser --kiosk www.google.com

www.google.com වෙත පෙන්වා ඇති පරිදි Chromium පූර්ණ තිරයෙන් දියත් කිරීමට


ක්රමය 2:

මෙම විසඳුම ඉතා හොඳින් ක්රියා කරයි. බ්‍රව්සරය පූරණය වූ පසු තිරයේ ඉහළ වම්පස කුඩා කළු චතුරස්රයක් ඇති අතර එය සාමාන්‍ය දෝෂයක් ලෙස පෙනේ (එය සංසදවල වෙනත් අය විසින් සඳහන් කර ඇත) නමුත් වෙනත් ආකාරයකින් පූර්ණ තිර මාදිලිය බ්‍රව්සර් පිටුව හැර සියල්ල සඟවයි.

ස්වයංක්‍රීය ගොනුව සංස්කරණය කරන්න:

sudo nano /etc/xdg/lxsession/LXDE/autostart 

එක් එක් පේළියේ ආරම්භයේ දී '#' භාවිතා කරමින් සෑම දෙයක්ම අදහස් දක්වන්න, ඉන්පසු පහත පේළි එක් කරන්න

බ්‍රව්සරය ස්වයංක්‍රීයව ක්‍රියාත්මක කරන්න

@xset s off
@xset -dpms
@xset s noblank
@midori -e Fullscreen -a http://google.com

අවශ්‍ය නම් බල ගැන්වීමේදී GUI ස්වයංක්‍රීයව ක්‍රියාත්මක කිරීම සඳහා වින්‍යාස කිරීමේ මෙවලම භාවිතා කරන්න

sudo raspi-config

ඔබට CTRL+ ALT+ විධාන විමසුමට ආපසු යාමට අවශ්‍ය නම් F1

CTRL+ ALT+F2


0

ඔබේ ස්ක්‍රිප්ට් /etc/profileගොනුවේ පතුලේ තැබිය හැකිය .

වෙනත් විකල්ප මට වැඩ කළේ නැත, නමුත් මෙයට හේතුව මගේ ස්ක්‍රිප්ට් ඩෙස්ක්ටොප් එකේ තැබීමයි.


0

'python /path/to/your/script.py' විධානයන් සමඟ .sh ගොනුවක් සාදා 'sudo nano /etc/rc.local' ටයිප් කර .sh ගොනුවට මාර්ගය ටයිප් කරන්න.

පෙර

exit 0

නැත්නම් ඔබට ටයිප් කළ හැකිය

crontab -e

හෝ

sudo crontab -e 

ඔබට ස්ක්‍රිප්ට් ආරම්භයේදී ක්‍රියාත්මක වීමට අවශ්‍ය නම්

ගොනු වර්ගය තුළ

@reboot python /path/to/your/script.py &

2
ක්‍රොන්ටාබ් ඇතුළත් කිරීම් සඳහා පූර්ණ මාර්ග භාවිතා කිරීම දැඩි ලෙස දිරිමත් කරනු ලැබේ!
han ානිමා

-1

එය වැඩ කරයි. (සෑම නැවත ආරම්භයේදී එය පහත ඉදිරිපත් කිරීම් ස්වයංක්‍රීයව සකස් කරයි)

$ cat /etc/rc.local
#!/bin/sh -e
echo "18" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio18/direction
echo "1" > /sys/class/gpio/gpio18/value
exit 0

-1

මම සාමාන්‍යයෙන් කරන්නේ මෙයයි.

  1. ඔබේ ගොනුව රාස්ප්බෙරි පයි නිවාස නාමාවලියෙහි ගබඩා කරන්න. උදා: mycode.py
  2. ගොනුව සංස්කරණය කරන්න:

    sudo nano .bashrc

.bashrcඇත නොවේ පිටපත් ක්රියාත්මක කිරීමට අදහස් කරන.

පුරනය නොවන අන්තර්ක්‍රියාකාරී කවචයක් ආරම්භ කරන සෑම අවස්ථාවකම එය ක්‍රියාත්මක වන අතර එය කවචය වින්‍යාස කිරීමට භාවිතා කරයි.
~/.bashrc: executed by bash(1) for non-login shells.

  1. ගොනුවේ අවසානයට ගොස් ලියන්න:

    sudo python mycode.py

  2. ප්‍රතිදානය txt ගොනුවක ගබඩා කිරීමට ඔබට අවශ්‍ය නම්, පියවර 3 හි කේතය පහත පරිදි සංස්කරණය කරන්න:

    sudo python mycode.py >> output.py

මෙය උපකාරී වේ යැයි සිතමු!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.