কম্পিউটার বন্ধ করুন!


83

চ্যালেঞ্জ:

আপনার পছন্দের প্রোগ্রামিং ভাষায়, আপনার কোডটি কার্যকর করা হয়েছিল এমন মেশিনটি বন্ধ করে দিন।

বিধি

  • রিসোর্স ক্লান্তি দ্বারা বন্ধ করা হচ্ছে না (যেমন: কাঁটাচামচ বন্ধ করতে বাধ্য করা)
  • আপনার কোডটি লেখার অনুমতি রয়েছে যা কেবলমাত্র নির্দিষ্ট পরিবেশ / ওএসে কাজ করে, আপনি যদি চান।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ

এটি , এইভাবে সর্বনিম্ন পরিমাণ বাইট জেতে!


62
আমি বন্ধু পেয়েছি, যারা স্কুলে এটি করে এবং তারা 'হ্যাকিং' বলে মনে করে: ডি
রাইজিংএজেন্ট

12
এই জাতীয় `whatever`;বাশ / পার্ল / পিএইচপি / রুবি / ইত্যাদি বন্ধ করার জন্য আমাদের একবারে কিছু নিয়ম নিয়ে আসা উচিত । stupiglots।
manatwork

260
উইন্ডোজ, 0 বাইট। কিছু দিন কম্পিউটার রেখে দিন এবং স্বয়ংক্রিয় আপডেটগুলি তাদের কাজটি করতে দিন
লুইস মেন্ডো

28
টিআইও-লিঙ্কের অভাব অন্য কারও নজরে আছে?
স্টেইনবার্গ

8
@ মন্টিহার্ডার এই পৃষ্ঠাটি পড়ার পরে আমি এই শব্দটি shatdown: past tense of the verb shutdown
মুদ্রণের

উত্তর:


92

সমাবেশ (x86 / x64, লিনাক্স, হিসাবে) , 22 21 19 বাইট

mov  $0x58,       %al  # 2 bytes: b0 58
mov  $0xfee1dead, %ebx # 5 bytes: bb ad de e1 fe
mov  $0x28121969, %ecx # 5 bytes: b9 69 19 12 28
mov  $0x4321fedc, %edx # 5 bytes: ba dc fe 21 43
int  $0x80             # 2 bytes: cd 80

রুট হিসাবে চালানো আবশ্যক।

এটি পাওয়ার বোতাম টিপানোর সমতুল্য এবং আপনার পিসি বন্ধ করার কোনও নিরাপদ উপায় নয়। নিশ্চিত হয়ে নিন যে আপনি সমস্ত উন্মুক্ত অ্যাপ্লিকেশন বন্ধ করেছেন এবং syncফাইল প্রোগ্রামের দুর্নীতির ঝুঁকি হ্রাস করার জন্য, এই প্রোগ্রামটি কার্যকর করার আগে সমস্ত ফাইল সিস্টেম বাফারগুলি ফ্লাশ করার জন্য কার্যকর করেছেন ute

টেস্ট রান

$ as -o poweroff.o poweroff.s
$ ld -o poweroff   poweroff.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000000400078
$ sudo sh -c 'sync && ./poweroff'
root's password:

অন্ধকার দ্বারা অনুসরণ করা।

কিভাবে এটা কাজ করে

int $0x80একটি সফ্টওয়্যার বিঘ্নিত অনুরোধ। এটি x86 এবং x64 উভয় ক্ষেত্রেই কাজ করে তবে এক দশকেরও বেশি সময় ধরে তাকে অবহেলা করা হয়েছে এবং এটি উত্পাদন কোডে ব্যবহার করা উচিত নয়। syscallপরিবর্তে x64 কোড ব্যবহার করা উচিত । x86 ব্যবহার করা উচিত sysenter, তবে কোড গল্ফের জন্য এটি খুব জটিল।

সিস্কল থেকে প্রাপ্ত ক্রিয়াকলাপ EAX - EDX, ESI, এবং EDI রেজিস্টারে নির্ভর করে। লিনাক্স প্রাপ্ত syscall রেফারেন্স সব syscalls যে মাধ্যমে উপলব্ধ দেখায় int $0x80

যখন EAX 0x58 (88) ধারণ করে , পুনরায় বুট বলা হয়, যা কম্পিউটারটি বিদ্যুত বন্ধ, ঘুমানো, বা হাইবারনেট করতে, পাশাপাশি কার্নেলগুলি স্যুইচ করতে এবং Ctrl - Alt - Del কী কম্বোকে অক্ষম বা সক্ষম করতে ব্যবহার করতে পারে ।

প্রোগ্রামের শুরুতে - এবং asবা এর সাথে সংকলন করে gcc -nostdlibআমরা নিশ্চিত করতে পারি যে আমরা আসলে প্রোগ্রামের শুরুতে এসেছি - বেশিরভাগ নিবন্ধগুলি 0 তে সেট করা থাকে । এই EAX অন্তর্ভুক্ত, তাই আমরা ব্যবহার করতে পারেন mov $0x58, %alথেকে EAX নিচের 8 বিট সেট করতে 0x58 এইভাবে EAX নিজেই সেটিং করতে, 0x58 । এটি ম্যানুয়ালি রেজিস্ট্রারের সাথে শূন্য করতে দুটি বাইট xor %eax, %eaxএবং স্ট্রাইটফোর্ডের উপরে আরও একটি বাইট সংরক্ষণ করে mov $0x58, %eaxযা 32 বিটগুলিতে 0x58 এনকোড করে।

পুনরায় বুট করার প্রথম দুটি যুক্তি হ'ল যাদু নম্বরগুলি, সম্ভবত দুর্ঘটনাজনিত রিবুটগুলি প্রতিরোধ করতে এবং ইবিএক্স এবং ইসিএক্স রেজিস্ট্রারগুলি থেকে পড়া হয়। এই সংখ্যাগুলি নির্দিষ্ট ধ্রুবকের সমান না হলে, পুনরায় বুট কোনও ক্রিয়া সম্পাদন করতে অস্বীকার করে।

  • প্রথম ম্যাজিক সংখ্যার অবশ্যই 0xfi1dead ( মৃত বোধ করা ) সমান হতে হবে , সম্ভবত পিসির পাওয়ার অফ / ডেথ উল্লেখ করে।

  • দ্বিতীয় ম্যাজিক সংখ্যাটি চারটি ভিন্ন ধাপের সমান হতে পারে, যদিও পরবর্তী তিনটি লিনাক্সের প্রাচীন সংস্করণগুলিতে কাজ করেনি। এগুলির সমস্তই পিসির জন্ম / জন্মের পরবর্তী ক্ষমতাটিকে বোঝায়।

    • 0x28121969 লিনাস টরভাল্ডসের জন্মদিন (28 ডিসেম্বর, 1969) উপস্থাপন করে।

    • 0x05121996 প্যাট্রিসিয়া টরভাল্ডসের জন্মদিন (5 ডিসেম্বর, 1996) উপস্থাপন করে।

    • 0x16041998 ড্যানিয়েলা টরভাল্ডসের জন্মদিন (16 এপ্রিল, 1998) উপস্থাপন করে।

    • 0x20112000 সেলস্টে টরভাল্ডসের জন্মদিন (20 নভেম্বর, 2000) উপস্থাপন করে।

    প্যাট্রিসিয়া, ড্যানিয়েলা এবং সেলেস্তে টরভাল্ডস হলেন লিনাস টোরভাল্ডসের তিন মেয়ে।

  • ইডিএক্স রেজিস্টার আমাদের "রিবুট" প্রকারটি নির্বাচন করে। 0x4321fedc হ'ল RB_POWER_OFF , পিসিটি বন্ধ করে এবং এটিকে বন্ধ করে দেয়।

  • অবশেষে, ইএসআই নিবন্ধকের মানটি RB_POWER_OFF- এর জন্য উপেক্ষা করা হবে ; ইডিআই নিবন্ধকের মান পুনরায় বুট করার মাধ্যমে সম্পূর্ণ উপেক্ষা করা হবে ।

বিকল্প সংস্করণ, x64- কেবল, 19 বাইট

X64-তে, আমরা একই বাইট গণনার জন্য একটি উপযুক্ত সিস্কেল ব্যবহার করতে পারি।

mov     $0xa9,       %al  # 2 bytes: b0 a9
mov     $0xfee1dead, %edi # 5 bytes: bf ad de e1 fe
mov     $0x28121969, %esi # 5 bytes: be 69 19 12 28
mov     $0x4321fedc, %edx # 5 bytes: ba dc fe 21 43
syscall                   # 2 bytes: 0f 05

নির্দেশাবলী ( syscallবনাম int $0x80), __NR_REBOOT ( 0xa9 বনাম 0x58 ) এর মান এবং জড়িত নিবন্ধগুলির মধ্যে কেবলমাত্র পার্থক্য রয়েছে ।


আমরা কি সাধারণত এক্সেল শিরোনামের জন্য প্রয়োজনীয় ফ্রেম বাইট না দিয়ে সমাবেশকে সংকলিত বাইট হিসাবে গণনা করি?
জোশুয়া

হ্যাঁ, কারণ প্রতিটি নির্দেশ বাইনারি ফাইলের নির্দিষ্ট বাইটগুলির সাথে মিলে যায়। ইএলএফ ফাইলগুলি (বা আপনার ওএস যে কোনও ফর্ম্যাট ব্যবহার করে) আলাদা ভাষা হিসাবে বিবেচনা করা হয় এবং শালীন স্কোর অর্জনের জন্য ম্যানুয়ালি তৈরি করতে হবে।
ডেনিস

আপনি কোড সমাবেশের পরে হেক্স ডাম্প যুক্ত করতে পারেন?
ckjbgames


আমি fee1তাই deadএখন ঠিক আছে।
আর্মিনব

49

পাওয়ারশেল, 13 বাইট

Stop-Computer

খুব স্ব-বর্ণনামূলক? পাওয়ারশেল কোরটিতে কাজ করে না, সুতরাং এটি লিনাক্স / ম্যাকোসের জন্য পাওয়ারশেলের উপর কাজ করবে না (ইতিমধ্যে এটি টিআইও :- ডি তে চেষ্টা করেছে)।

বোনাস আবর্জনা জমা, 12 বাইট

gcm s*r|iex

আমার পরীক্ষায়, পাওয়ারশেল ২.০ সহ উইন্ডোজ 2003 এ এটি কাজ করে। এটি বেশিরভাগ নতুন সংস্করণে কাজ করবে না এবং কোন মডিউলগুলি ইনস্টল করা হয়েছে তার উপর নির্ভর করে এটি কাজ করতে পারে না। বেশ ভয়ানক!

এটি প্যাটার্ন সহ যে কোনও জন্য কমান্ডের তালিকা অনুসন্ধান করে s*rএবং তারপরে সমস্তগুলি চালায়! স্পষ্টরূপে, এটি বিপজ্জনক, এটি করবেন না!

অবশ্যই কৌশলটি, কমান্ডগুলির একটি তালিকা পেয়েছে যার কোনও বাধ্যতামূলক পরামিতি নেই, অন্যথায় পাওয়ারশেল একটি মান জিজ্ঞাসা করবে।

আমার 2003 মেশিনে, 3 টি কমান্ড এটি ফিরে আসে:

CommandType     Name                                                Definition                                         
-----------     ----                                                ----------                                         
Application     scrnsave.scr                                        C:\WINDOWS\system32\scrnsave.scr                   
Application     ssmarque.scr                                        C:\WINDOWS\system32\ssmarque.scr                   
Cmdlet          Stop-Computer                                       Stop-Computer [[-ComputerName] <String[]>] [[-Cr...

হ্যাঁ, এটি মার্কি স্ক্রিনসভারটি চালু করে, তবে না, এটি আরম্ভের আগে এটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না Stop-Computer

এই পদ্ধতিটি নতুন মেশিনগুলিতে আবার কাজ করতে পারে, আবার কোন মডিউলগুলি ইনস্টল করা হয়েছে তার উপর নির্ভর করে তবে উইন্ডোজ 2012 এবং 2016 এ আমি সবচেয়ে ভাল করতে পারি 14 বাইট :

gcm sto*er|iex

(এবং হ্যাঁ, উইনব্যাচ জমা দেওয়ার ক্ষমতা পাওয়ারশেলে কাজ করবে এবং এটি আরও খাটো, তবে .. এটি কোনও মজাদার নয়)


4
উইন 7 এবং উইন 10 এর জন্য সংক্ষিপ্ততর একটি (এবং আরও বেশি হতে পারে): gcm *p-c*|iex- এবং এর ফলাফল কেবল একটিই!
বব

@ Bob এখনও ইনস্টল করা মডিউলগুলির উপর নির্ভরশীল; আমার উইন 10 মেশিনে এটি 6 টি ফলাফল দেয়, যার মধ্যে বেশিরভাগের বাধ্যতামূলক পরামিতি থাকবে (তাই তারা প্রম্পট করবে এবং এটিকে কখনই করবে না Stop-Computer, এটিই শেষ ফলাফল)।
ব্রিটিশবাদী

39

ব্যাচ, 10 বাইট

উইন্ডোতে, এটি যথেষ্ট হবে

shutdown/s

এটি এক মিনিটের মধ্যে শাটডাউন সেটআপ করবে।

বিকল্প হিসাবে, যেমন @ ফ্ল্যাশবাং উল্লেখ করেছে:

shutdown/p

এটি সাথে সাথে কম্পিউটার বন্ধ করে দেয় down


79
Press the big button on the front of your computer= 0 বাইট
রাইজিংএজেন্ট

96
@ রাইজিং এজেন্ট এখানে পিপিসিজিতে আমরা কোডগুলিতে আমাদের সমস্যাগুলি সমাধান করি। শারীরিক শ্রমকে ভ্রান্ত করা হয়।
স্টেইনবার্গ

12
@ সটেনবার্গ আমি জানি না ... 10 টি কী-স্ট্রোকের তুলনায় একটি বড় বোতাম টিপছে? আমি বোতামটি নিয়ে যাব
ওয়ার্ল্ডসেন্ডার

16
@ রাইজিংএজেন্ট আপনার প্রস্তাবনায় স্কেলিবিলিটি সমস্যা রয়েছে। সপ্তাহে চারবার 10.000 কম্পিউটারের জন্য এটি করার চেষ্টা করুন।
এমিলিও এম বুমাচার

10
@ রাইজিংএজেন্ট আসল পুরুষরা পিএসইউ
ক্রানচার

35

x86 মেশিন কোড, লেনভো জেড 510, ডস সিওএম বা বুটলোডার, 7 বাইট

BITS 16

mov ax, (1 << 13) | (7 << 10)
mov dx, 1804h
out dx, ax

একত্রিত B8 00 3C BA 04 18 EF

আমি শোষণ করছি " আপনি যে কোডটি শুধুমাত্র একটি নির্দিষ্ট পরিবেশে / অপারেটিং সিস্টেম কাজ করে লিখতে দেয়া হয় আপনি যদি চান " চূড়ান্ত স্তর: এই শুধুমাত্র লেনোভো Z510 কাজ করবে 1

এই লিখেছে SLP_TYPa << 10 | SLP_ENকরার PM1a_CNTজন্য ACPI রেজিস্টার আমি ACPI সংক্রান্ত টেবিল থেকে এই মান ডাম্প শাটডাউন সম্পর্কে একটি উত্তরের জন্য মাস আগে (যেখানে আমি উপরের কোড প্রসঙ্গ একটি বিট দিতে)।

এটি ডওএসের অধীনে একটি সিওএম হিসাবে চালানো যেতে পারে (কেবল একটি ফাইলে বাইনারি ডেটা লিখুন এবং এক্সটেনশানটি "কম" এ পরিবর্তন করুন) বা বুটলোডার হিসাবে।
আধুনিকতার জন্য স্ট্যান্ডার্ড স্বাক্ষর লিখুন এবং আধুনিক ফার্মওয়্যার সহ সমস্যাগুলি থেকে সাবধান থাকুন


1 কঠোরভাবে সত্য নয়, একই এসিপিআই কনফিগারেশনের সাথে সংঘটিত যে কোনও সিস্টেম বন্ধ হয়ে যাবে।


13
সীমিত প্ল্যাটফর্মের কারণে উত্সাহিত।
পাইপ

হা! ডেনিসকে কেউ মারলেন!
জোশুয়া

আপনি যদি 7-বাইট গণনা নিয়ে যাচ্ছেন তবে আপনার এটিকে সমাবেশ সমাধানের পরিবর্তে মেশিন কোড জমা দেওয়া উচিত। বিধানসভা জমাটি by৩ বাইট।
জাকব

@ জ্যাকব আপনি ঠিক বলেছেন!
মার্গারেট ব্লুম

আপনি এই প্রশ্নের উত্তর দেওয়ার জন্য সঠিক ব্যক্তির মতো দেখতে: স্ট্যাকওভারফ্লো / প্রশ্নস / ২০১৪৪৪৪ / / (আমি এতে খারাপভাবে ব্যর্থ হয়েছিলাম, লজ্জার কারণে আমার "উত্তর" মুছে ফেলতে হয়েছিল।)
প্রফেসর ফ্যালকেন

34

GRUB শেল , 4 বাইট

Golfed

halt

কমান্ড: থামুন - নো-এপিএম

কমান্ডটি কম্পিউটারটি থামিয়ে দেয়। --No-apm বিকল্পটি নির্দিষ্ট করা থাকলে, কোনও APM BIOS কল সঞ্চালিত হয় না। অন্যথায়, কম্পিউটারটি এপিএম ব্যবহার করে বন্ধ হয়ে যায়।

বোনাস

এখানে একটি প্রমাণ রয়েছে যে GRUB শেলটি সত্যই তুর এন -সম্পূর্ণ (মন্তব্য দেখুন):

এখানে চিত্র বর্ণনা লিখুন


গ্রাব শেল কোনও "প্রোগ্রামিং ল্যাঙ্গুয়েজ" নয় - এটি ট্যুরিংয়ের সম্পূর্ণ নয়
অ্যালনিটাক

9
@ অ্যালনিতাক, আপনাকে কী এমন ভাবতে বাধ্য করে? এটা একটা বরং উন্নত বৈশিষ্ট্য built-in scripting language, which has a syntax quite similar to that of GNU Bash and other Bourne shell derivativesএবং ভেরিয়েবল, শর্তাধীন নির্মান, ফাংশন এবং সমর্থন আরো , তাই অবশ্যই, যেখানে হয় বাঁক-সম্পূর্ণ, যেকোন মাপকাঠি অনুযায়ীই।
জেপেলিন

1
ঠিক আছে, আমি এটি ফিরিয়ে নেব - আমি যখন তাকালাম তখন সেই
জিনিসটি

28
যখন এটি কোনও স্পিনার প্রদর্শন করতে পারে না তবে তা স্পষ্টতই তুর এন -সম্পূর্ণ নয়
J_F_B_M

1
বাশের ক্ষেত্রে এটি একই কমান্ড।
পাওয়ে টোকার্জ

31

65C02 মেশিন কোড, 1 বাইট

এসটিপি নির্দেশনা (0xDB):

এসটিপি 65C02 এর ক্লক ইনপুটটি থামায়, কার্যকরভাবে 65C02 বন্ধ করে কোনও হার্ডওয়্যার রিসেট না হওয়া পর্যন্ত (যেমন আরইএস পিন কম না হয়) until এটি 65C02 কে নিম্ন পাওয়ারের স্থানে রাখে। এটি এমন অ্যাপ্লিকেশনগুলির জন্য (সার্কিট) দরকারী যার জন্য কম বিদ্যুৎ খরচ প্রয়োজন, তবে এসটিপি খুব কমই দেখা যায় otherwise

(উত্স: http://www.6502.org/tutorials/65c02opcodes.html )

এক্সএক্সডি ডাম্প:

00000000: db                                       .

Noice। আমি সেদিন ফিরে অ্যাপল II হ্যাকার হয়েছি এবং এই অপকোডটি মনে রাখিনি।
kindall

1
হ্যাঁ, আরও বেশি বৈশিষ্ট্য সহ 65c816 এমুলেটর লেখার পরে এবং এই চ্যালেঞ্জটি দেখেছি কী করতে হবে তা আমি জানতাম: পি এছাড়াও, দেখতে এখন পর্যন্ত এটিই একমাত্র 1 বাইট উত্তর! \ o /
therealfarfetchd

24

মতলব, 21 বাইট

system('shutdown -s')

আমি এটি চেষ্টা করি নি (দিনের মাঝামাঝি পুনরায় চালু করার জন্য সমস্ত প্রোগ্রাম বন্ধ করা সত্যই লোভনীয় নয়), তবে এটি কার্যকর হওয়া উচিত। । এইটা কাজ করে...

আমি পরে একটি সংক্ষিপ্ত ব্যাখ্যা যুক্ত করব, আমার ল্যাপটপ বর্তমানে বন্ধ আছে।


105
"আমি পরে একটি সংক্ষিপ্ত ব্যাখ্যা যুক্ত করব, আমার ল্যাপটপ বর্তমানে বন্ধ আছে।" <- শাটডাউন চ্যালেঞ্জের বিপদ
স্যুভার

4
অ্যাক্স্যাক্সেক্স্যাক্সা, ভাল, একবারে একবারে আপনার কম্পিউটার পুনরায় চালু করা খারাপ হতে পারে না :)
রাইজিংএজেন্ট

6
uptimeযদিও আপনার ক্ষতি করে
ওয়েইন ওয়ার্নার

shutdown -sশেল হিসাবে জমা দেওয়ার পরিবর্তে এটিকে কেন ম্যাটল্যাব হিসাবে জমা দিন ?
ইমিভিস

10
কারণ আমার জন্য, শেল হয় এমন কিছু যা আমি সৈকতে খুঁজে পাই বা কোনও গ্যাস স্টেশন।
স্টিভি গ্রিফিন

21

ম্যাটল্যাব, 11 বাইট

!shutdown/p

স্টিভি গ্রিফিনের পদ্ধতির সাথে কিছুটা মিল । যাইহোক, ম্যাটল্যাব হয়েছে পথ সিস্টেমের কমান্ড আবাহন এর খাটো উপায়ে; এই ক্ষেত্রে, !ব্যবহৃত হয়। উইন্ডোজের .exeকমান্ড নামের প্রয়োজন নেই , তাই এটিও বাদ পড়েছে। /বিকল্প এখনো সমর্থিত (আমি উইন্ডোজ 10 চলছি), এবং স্থান প্রয়োজনীয়তার negates করা হয়। বিকল্পগুলি হ'ল:

system shutdown/p % 17 bytes; uses so-called 'command' syntax.
dos shutdown/p    % 14 bytes; the 'dos' command can be used just as well.

19

স্মাইলব্যাসিক, 14 11 6 বাইট

OPTION

3DS পুনরায় আরম্ভ করার ফলে ক্রাশটি ট্রিগার করে। আমি এই গণনা আশা করি।

সবচেয়ে সাম্প্রতিক সংস্করণে কাজ করে।


আমি ভেবেছিলাম এটি প্যাচ করা হয়েছে ... দয়া করে একটি সংস্করণ নম্বর অন্তর্ভুক্ত করুন।
wizzwizz4

3
এটি 3.5 সংস্করণে প্যাচ করা হয়েছে যা জাপানের বাইরে প্রকাশিত হয়নি।
12 মে 21

4
@ 12Me21 অবশ্যই এটি গণনা করেছে। পরিবেশের দুর্দান্ত পছন্দ।
পি কেটিনোস

যদি কেবল REBOOTএসবিভি 2 থেকে বৈধ উত্তর হিসাবে গণনা করা হয়।
শামুক_

16

বাশ, 7 6 বাইট

init 0

ধরে নিচ্ছি যে প্রোগ্রামটি মূল হিসাবে চালিত হয়েছে।


প্রকৃতপক্ষে, মেশিনটি বন্ধ করা প্রয়োজন। সুতরাং আপনার বৈধ উত্তর হিসাবে '
হলট

4
এই সম্পাদনা গণহত্যা :)
রাইজিংএজেন্ট

@ পি.ক্টিনোস: poweroffএকটি শব্দ, যদিও আরও কিছুটা অক্ষর।
সিসিপিজ্জা 27'17

1
@ সিপিপিজা ডান, তবে সাধারণ স্কোরিং মানদণ্ডটি বাইট গণনা
স্যুভার

13

জাভা, 101 98 62 42 বাইট

()->{Runtime.getRuntime().exec("init 0");}

@ স্নোম্যান যেমন উল্লেখ করেছেন, কোনও পূর্ণ প্রোগ্রামের প্রয়োজন ছিল কিনা তা প্রশ্নটি নির্দিষ্ট করে নি, তাই এটি এখনও গ্রহণযোগ্য হবে।


2
এটি আপনাকে প্রধান থেকে বাদ দিতে দেয় পাশাপাশি এটি প্রতিস্থাপন করা classআরও খাটো । interfacepublic
পাভেল

6
আপনি একটি পদ্ধতি ব্যবহার করতে পারেন, যেহেতু প্রশ্নটি void f()throws Exception{Runtime.getRuntime().exec("shutdown/s");}

1
করবে না লিনাক্স সংস্করণ একটু খাটো হতে পারে?
jpmc26

2
()->{Runtime.getRuntime().exec("init 0");}বা অস্থায়ীভাবে ()->Runtime.getRuntime().exec("init 0")(এই মুহুর্তে পরীক্ষা করতে পারে না)। এটি একটি কাস্টম অকার্যকর, নো-আরগস-নিক্ষেপ ইন্টারফেস প্রয়োগকারী ল্যাম্বদা।
অলিভিয়ার

1
এটি একটি লিনাক্স-নির্দিষ্ট উত্তর হিসাবে লেবেল করা উচিত, যেমন "জাভা অন লিনাক্স"।
জাকব

13

পাইথন 2, 29 বাইট

import os;os.system('init 0')

লিনাক্স সিস্টেমগুলিতে কাজ করে এবং মূল অধিকারগুলির প্রয়োজন।

উইন্ডোজ জন্য, 33 বাইট

import os;os.system('shutdown/p')

এটি কেবল আমার লেখা সবচেয়ে কম আকর্ষণীয় বা সহায়ক কোড হতে পারে।


2
অন্য কেউ লিনাক্স শেল সংস্করণ পোস্ট করেছেন।
jpmc26

1
আহ ঠিক আছে, আমার খারাপ ..
ফ্লিপট্যাক

12

কমোডোর 64, 11 বাইট

0 sys64738

এটি বেসিক প্রম্পট থেকে। অথবা ...

কমোডোর 64, 6502 বিধানসভা, 3 বাইট (একত্রিত), 16 বাইট (উত্স)

*=8000
JMP $FCE2

আমি মনে করি যে বেসক থেকে কমোডোর's৪ এর সরাসরি ইনপুট মোডটি sys64738ব্যবহার করে শূন্য বাইট ব্যবহার করবে কারণ সেখানে কোনও প্রোগ্রাম বা অন্য কিছু সঞ্চয় নেই; আপনি স্ক্রিন র‌্যাম ব্যবহার করছেন তবে সেই র‌্যামটি ইতিমধ্যে শূন্যস্থান দিয়ে ভরাট হবে, সুতরাং আপনি কেবলমাত্র সেই স্পেসগুলি পাঠ্যের সাহায্যে প্রতিস্থাপন করছেন।
শন বেবারস

2
উত্স কোড স্থান গ্রহণ করে। কেবলমাত্র এটি লক্ষ্য মেশিনে স্থান সংরক্ষণ করে না তার অর্থ এটি 0 বাইট নেয় up অন্যথায় উত্তরটি `` হবে `
wizzwizz4

3
আপনার 0এবং এর মধ্যে জায়গার দরকার নেই sys64738, আপনি sysশর্টকাট ফর্মটি দিয়ে প্রতিস্থাপন করতে পারেন sYএবং আমি প্রোগ্রামের দৈর্ঘ্যে অনুবর্তী নতুনলাইনটি গণনা করি না। তবে আমি মনে করি না যে আপনার কোডটি প্রয়োজনীয়তাগুলি পূরণ করে: 64738 এ কোডটি একটি পাওয়ার অফ নয়, একটি সফট রিসেট করে।
চিহ্নিত করুন

2
বন্ধ হয় না।
TecBrat

1
আমি একবার আমার কমোডোর on৪ তে বিয়ার ছিটিয়েছি, এটি স্থায়ীভাবে বন্ধ করে দিয়েছে। এই কি গণনা?
শান বেবারস

12

টিআই-এনস্পায়ার সিএক্স সিএএস, 3 বাইট

" "+" "

দুটি খালি স্ট্রিং যোগফল।

ক্যালকুলেটরের একটি পুরানো সংস্করণে, এটি ডিভাইসটি ক্র্যাশ করে পুনরায় বুট করার কারণ ঘটবে (শারীরিক বোতামের সংমিশ্রণগুলি ছাড়া রিবুট ছাড়াই কোনও ডিভাইস বন্ধ করার কোনও উপায় নেই)।

ভিডিও অ্যাড্রিউব


এটা কি 7 বাইট না?
রোমান গ্রাফ 26'17


আমার কাছে বিশ্বাসযোগ্য মনে হচ্ছে
রোমান গ্রাফ

11

সি ++, 51 40 বাইট

-11 বাইট ধন্যবাদ ইঙ্গভে !

#include<os>
int main(){OS::shutdown();}

কেবল ইনক্লুডওএস (v0.10.0-rc.1) এ কাজ করে

টেস্ট:

$ pwd
/home/simon/IncludeOS/examples/demo_service

$ cat service.cpp
#include<os>
int main(){OS::shutdown();}

$ mkdir build && cd build && cmake .. && make && cd ..
[...]

$ boot build/IncludeOS_example
[...]
================================================================================
================================================================================
 IncludeOS v0.10.0-rc.1-9-g151a2b9
 +--> Running [ IncludeOS minimal example ]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$

1
এখন আমি ইনক্লুডওএস সম্পর্কে কৌতূহলী
কার্ল ন্যাপফ

ইনক্লুডওএস সম্পর্কে @ কার্লনাপফ অ্যালফ্রেড সিপিপোন ২০১ 2016 তে দুর্দান্ত একটি উপস্থাপনা করেছিলেন: youtube.com/watch?v=t4etEwG2_LY আপনি যদি আরও জানতে চান :-)
সাইমন

1
আপনার ব্যবহারের দরকার নেই void Service::start, int main ইনক্লুডওএস-এও কাজ করে
Ingve

10

অ্যাপলস্ক্রিপ্ট, 30 বাইট

tell app "Finder" to shut down

এটি যা বলেছে ঠিক তা করে: ফাইন্ডারকে কম্পিউটার বন্ধ করে দিতে বলে।


9

অটোহটকি, 11 10 বাইট

গুরুপদ মামাদপুরকে একটি বাইট সংরক্ষণ করে Sa

Shutdown,9

এএইচকে ডিফল্টভাবে একটি শাটডাউন কমান্ড সমর্থন করে। 9একটি পতাকা নিয়ে গঠিত হয়, Shutdown=1+ + PowerDown=8


1
AHKরহস্যজনক।
গুরুপদ মামাদপুর

কমা পরে আপনার স্থান দরকার?
therealfarfetchd 26'17

স্থান পরে ,প্রয়োজন হয় না। এটি একটি ভিন্ন পতাকা দিয়ে পরীক্ষা করার চেষ্টা করুন। আমি ভেবেছিলাম এটি অবিলম্বে কম্পিউটারটি বন্ধ করবে না, এবং এটি আমার মূল স্ক্রিপ্টে রাখবে যা প্রারম্ভকালে লোড হয়: ডি এখন আমাকে নিরাপদ মোডে লোড করতে হবে এবং সমস্যার সমাধান করতে হবে। দীর্ঘশ্বাস.
গুরুপদ মামাদপুর

9

মেশিনের কোড (x86, বুট লোডার) 18 বাইট

b8 01 53 33 db cd 15 b8 07 53 bb 01 00 b9 03 00 cd 15

disassembly:

mov ax, 0x5301 ; connect to real-mode APM services
xor bx, bx     ; device id 0 - APM BIOS
int 0x15       ; call APM
mov ax, 0x5307 ; set power state
mov bx, 0x0001 ; on all devices
mov cx, 0x0003 ; to Off
int 0x15       ; call APM

আপনি এটি নীচের কমান্ডগুলির সাথে বোচসের ডিবাগারে পরীক্ষা করতে পারেন (সিমুলেশন শুরু করার পরে, কিছু ডিস্ক ড্রাইভ সেটআপ করার পরে):

pb 0x7c00
c
setpmem 0x7c00 4 0x335301b8
setpmem 0x7c04 4 0xb815cddb
setpmem 0x7c08 4 0x01bb5307
setpmem 0x7c0c 4 0x0003b900
setpmem 0x7c10 2 0x15cd
c

এই একই মেশিন কোডটি ডস এক্সিকিউটেবল ( *.COM) হিসাবেও কাজ করবে ।


7

সি #, 79 54 53 বাইট

এটি উইন্ডোজে কাজ করে।

By৯ বাইট :

class _{static void Main(){System.Diagnostics.Process.Start("shutdown","/s");}}

53 বাইট , TheLethalCoder ধন্যবাদ

_=>System.Diagnostics.Process.Start("shutdown","/s");

2
নোট করুন যে চ্যালেঞ্জটির জন্য একটি সম্পূর্ণ প্রোগ্রামের প্রয়োজন নেই এবং কোনও ইনপুট (অবশ্যই অব্যবহৃত) নেওয়া অস্বীকার করবে না যাতে আপনি একটি সংকলন করতে Action<int>পারেন _=>System.Diagnostics.Process.Start("shutdown", "/s");এবং 54 বাইটের জন্য করতে পারেন ।
TheLethalCoder

@ লেটলকোডার, আপডেট হয়েছে, ধন্যবাদ!
দারিউস ওজনিয়াক

আপনি অপ্রয়োজনীয় স্থানও মুছে ফেলতে পারেন।
nothrow

অবশ্যই হ্যাঁ! আপনাকে ধন্যবাদ, @nothrow :)
দেরিউজ Wozniak

6

অটোআইটি, 11 বাইট

Shutdown(1)

শাটডাউন ফাংশন নিম্নলিখিত কোডগুলির সংমিশ্রণ পায়

0 = Logoff
1 = Shutdown
2 = Reboot
4 = Force
8 = Power down
16= Force if hung
32= Standby
64= Hibernate

শাটডাউন এবং পাওয়ার ডাউন করার জন্য, উদাহরণস্বরূপ, কোডটি 9 হবে (শাটডাউন + পাওয়ার ডাউন = 1 + 8 = 9)।


1
0(লগঅফ) এখানে একটি বিশেষ মামলা; এটি স্ট্যান্ডবাই বা হাইবারনেটের সাথে পুরোপুরি একত্রিত হয় না।
wizzwizz4

ঠিক আছে0 + 32 = 32
rahnema1

এইচএম, তাই স্ট্যান্ডবাই / হাইবারনেশনে যাওয়ার আগে কি সর্বদা লগ অফ হয়?
Ruslan

@ রুসলান আমি জানি না কীভাবে এটি কাজ করে, আপনি আরও ফিডব্যাকগুলি পেতে অটোআইটি ব্যবহারকারী ফোরামটি উল্লেখ করতে পারেন :-)
rahnema1

6

উইন্ডোজ - নেটিএপিআই, 212 বাইট

ঠিক আছে এটি আসলে সবচেয়ে সংক্ষিপ্ত সংস্করণ নয়। তবে কারও কারও কাছে আকর্ষণীয়ও হতে পারে। এটি Win32 সাব সিস্টেমে কার্যকর হবে না । তবে এটি চলবে যখন নেটিভ এপিআই (যেমন autochk.exe করেন) এর প্রসঙ্গে কার্যকর করা হবে

কোড

#define WIN32_NO_STATUS
#include <windef.h>
#include <winnt.h>
#include <ntndk.h>
NTSTATUS main() {
RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE,TRUE,FALSE,NULL);
return ZwShutdownSystem(ShutdownPowerOff);
}

নির্মাণ করা

এটি তৈরি করতে হয় হয় WinDDK build.exeসরঞ্জামটি ব্যবহার করুন (এর sourceজন্য উপযুক্ত ফাইলের সাথে NMAKE)

বা সংকলন এবং লিঙ্ক করতে এই আদেশগুলি ব্যবহার করুন:

cl /Gd /D_X86_ /showIncludes /I%DDK_INC_PATH% /I%CRT_INC_PATH% /c main.c
link /verbose /nodefaultlib /subsystem:native /machine:X86 /entry:NtProcessStartup@4 C:\WinDDK\7600.16385.1\lib\win7\i386\nt.lib C:\WinDDK\7600.16385.1\lib\win7\i386\ntdllp.lib C:\WinDDK\7600.16385.1\lib\win7\i386\BufferOverflow.lib .\main.obj 

দ্রষ্টব্য: এটি একটি x86 নেটিভ এক্সিকিউটেবল তৈরি করবে। আপনি যদি অন্য কোনও স্থাপত্যের জন্য এটি তৈরি করতে চান তবে উপযুক্ত বিটগুলি পরিবর্তন করুন।

পরীক্ষা

নেটিভ এক্সিকিউটেবলের পরীক্ষা করতে আপনাকে উইন 32 সাবসিস্টেমটি লোড হওয়ার আগে এটি কার্যকর করতে হবে । এটি করার একটি সাধারণ উপায় নিম্নলিখিত রেজিস্ট্রি কীতে এক্সিকিউটেবলকে যুক্ত করা:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute

সতর্কতা

তবে আপনি যদি এটি করেন তবে আপনার অন্য একটি ওএস থেকে লক্ষ্য ওএসের রেজিস্ট্রি মধুর সম্পাদনা করার একটি বিকল্প থাকতে হবে। যেহেতু আপনি আর লক্ষ্যবস্তু ওএস বুট করতে পারবেন না!

আমি এটি একটি ভিএম-এ করেছি যেখানে আমি সহজেই আগের কোনও স্ন্যাপশটে ফিরে যেতে পারি!


5

গ্রোভি, 23 বাইট

'shutdown /p'.execute()

2
স্ল্যাশের আগে জায়গাটি কি প্রয়োজনীয়?
স্টেইনবার্গ

3
হ্যাঁ, এটি দরকার @
গুরুপদ মামাদপুর

@ গুরুপাদমাদপুর কি নিশ্চিত?
ট্রোজানবাইসিসিডেন্ট

5

বেশিরভাগ লিনাক্স শেল, 15 বাইট

# echo o>/p*/*ger

আপনি যদি /procডিরেক্টরিতে থাকেন তবে এটি 11 বাইট দীর্ঘ হতে পারে :

# echo o>*ger

এটি খুব সোজা (কোনও পার্শ্ব প্রতিক্রিয়া নেই, যেমন ফাইলমাস্টমগুলি মাউন্ট করার পদ্ধতি বা হত্যা প্রক্রিয়াগুলি যেমন) এবং বরং নির্মম।


1
সর্বশেষে যখন আমি একটি মেলানো ফাইল থাকা সত্ত্বেও এটি ওয়াইল্ডকার্ডের সাথে একটি ফাইল উত্পন্ন করে পুনর্নির্দেশের জন্য ওয়াইল্ডকার্ড প্রসারণের চেষ্টা করেছি।
জোশুয়া

5
আমি বিশ্বাস করি আপনার বাইট গণনায় আপনাকে "/ proc /" যুক্ত করতে হবে
জেপেলিন

@ জোশুয়া এটি শেল নির্ভর হতে পারে। আমি প্রকৃতপক্ষে এটি bashআমার কম্পিউটারে পরীক্ষা করেছি :-)
রাদোভান গারাবাক

1
@ রাদোভান গারাবাক - আমি মনে করি না যে এটি সত্যই বৈধ। এটি মূলত বোঝার মতোই যে এখানে একটি উপনাম "পি = পাওয়ার অফ" রয়েছে (যা "অসম্ভব "ও নয়) এবং" পি "কে বৈধ 1 বাইট সমাধান বলে দাবি করে।
জেপেলিন

1
তবে আপনি সম্ভবত এটির জন্য কেবল 3 বাইট ব্যয় করে বৈধ করতে পারেনecho o>/p*/*ger
জেপেলিন


5

অ্যাপলস্ক্রিপ্ট, 44 বাইট

tell application "Finder"
shut down
end tell

অ্যাপলস্ক্রিপ্ট সিনট্যাক্স বা অন্য কিছু কীভাবে কাজ করে তা আমি জানি না, সুতরাং যদি কেউ এটি কীভাবে ছোট করতে হয় তবে দয়া করে জানান।

এছাড়াও, আমি স্কুলে আমার ফোনে এটি করছি ("হ্যাকিং"), তাই আমি এটি পরীক্ষা করতে পারি না।

14 টি কম বাইটে (কিন্ডালকে ধন্যবাদ) আপনি বলতে পারেন

tell app "Finder" to shut down

কেউ কেউ আপনার কয়েক ঘন্টা পরে একটি সংক্ষিপ্ত সমাধান (একই প্রোগ্রাম সহ) নিয়ে এসেছিল (তবে এখানে মন্তব্য করার পরিবর্তে এটি পোস্ট করেছেন) কোডগল্ফ.স্ট্যাকেক্সেঞ্জিং.com
a/

আপনি সম্ভবত ইন্ডেন্টেশনটি সরিয়ে ফেলতে পারেন
সাইয়েস

4
tell app "Finder" to shut downকাজ করা উচিত, আমি বিশ্বাস করি (যদিও সংকলনটি 'অ্যাপ্লিকেশন' এর সাথে 'অ্যাপ্লিকেশন' প্রতিস্থাপন করতে পারে)।
kindall

4

জে, 14 বাইট

2!:0'poweroff'

লিনাক্স সিস্টেমে কাজ করে। 2!:0ইন স্ট্রিং এক্সিকিউট করে /bin/sh


4

ক্লোজার, 40 39 বাইট

(.exec(Runtime/getRuntime)"shutdown/s")

থেকে পতাকা পরিবর্তন করে -1 বাইট -sকরার /s, যা আমার স্থান পরিত্রাণ পেতে অনুমতি দেওয়া।

মূলত জাভা উত্তর।

এটি পরীক্ষা মজাদার ছিল। উইন্ডোজ দ্বিতীয়বার এটি বন্ধ হয়ে গেলে আমার সারফেসে ফার্মওয়্যার আপডেট করার সিদ্ধান্ত নিয়েছে। অবশ্যই.

(defn shutdown []
  (.exec (Runtime/getRuntime) "shutdown -s"))

2

নোড.জেএস, 39 বাইট

লিনাক্স

require('child_process').exec('init 0')


2

সি ++, 48 47 (উইন্ডোজ) 46 45 (লিনাক্স) বাইট

স্নোম্যানকে ধন্যবাদ 1 বাইট সরানো হয়েছে

#include<cstdlib>
main(){system("shutdown/p");}

এটি উইন্ডোগুলির জন্য সিস্টেমটি বন্ধ করে দেওয়া উচিত

#include<cstdlib>
main(){system("poweroff");}

এটি লিনাক্সের জন্য সিস্টেমটি বন্ধ করে দেওয়া উচিত


তোমার কি দরকার ;?
রাইজিংএজেন্ট

1
@ লিওটেল্যাকস খুব নিশ্চিত যে এটি "শাটডাউন / পি" এবং "-p" নয় এবং স্থানটির প্রয়োজন নেই।
পি কেটিনোস

সঠিক সি ++ সিনট্যাক্সের জন্য সেমিকোলন প্রয়োজনীয়, একটি স্ল্যাশ ব্যবহার উইন্ডোগুলির জন্য একটি ছোট উত্তর দেওয়ার অনুমতি দেয় তবে এটি লিনাক্সের জন্য আর কাজ করে না। যদিও আমি উইন্ডোজ এবং লিনাক্সের মধ্যে ভাগ হয়ে থাকা
শাটডাউনয়ের

@ লিউলিটেলাকস যদিও আপনি যা খুশি করতে পারেন, তবে আমি দ্বিতীয় বিধিটি অপমান করা এবং লিনাক্স কার্যকারিতা সম্পর্কে যত্নবান না হওয়ার পরামর্শ দিচ্ছি, কারণ এটি একটি কোড-গল্ফ এবং কম পরিমাণে বাইট ভাল is
পি কেটিনোস

1
#include<cstdlib>একটি বাইট শেভ করা হবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.