Postgres CLI ရှိ CTRL-C သည် မေးမြန်းချက်များကို ပယ်ဖျက်သည့်နည်းလမ်းသည် မယုံနိုင်လောက်အောင် hack-y ဖြစ်သည်။ | Mewayz Blog Skip to main content
Hacker News

Postgres CLI ရှိ CTRL-C သည် မေးမြန်းချက်များကို ပယ်ဖျက်သည့်နည်းလမ်းသည် မယုံနိုင်လောက်အောင် hack-y ဖြစ်သည်။

မှတ်ချက်များ

2 min read Via neon.com

Mewayz Team

Editorial Team

Hacker News

SIGINT ၏ တစ္ဆေသရဲ- Postgres CLI Query Cancellation သည် Hack ကဲ့သို့ခံစားရသည်

ဆော့ဖ်ဝဲရေးသားသူများနှင့် ဒေတာဘေ့စ်စီမံခန့်ခွဲသူများအတွက်၊ PostgreSQL command-line interface (psql) သည် ယုံကြည်စိတ်ချရသော နေ့စဉ်ဒရိုက်ဗာတစ်ခုဖြစ်သည်။ ၎င်းသည် အားကောင်းသည်၊ တိကျသည်၊ နေရာအနှံ့ဖြစ်သည်။ သို့တိုင်၊ ၎င်း၏ အခြေခံအကျဆုံး အပြန်အလှန်တုံ့ပြန်မှုများထဲမှတစ်ခု— universal CTRL-C ဖြတ်လမ်းလင့်ခ်ဖြင့် ထွက်ပြေးသွားသောမေးမြန်းချက်ကို ပယ်ဖျက်ခြင်း—သည် ထူးဆန်းစွာနေရာမှထသွားသည်ဟု ခံစားရသည်။ command သည် လက်ရှိလုပ်ဆောင်မှုကို ရပ်တန့်စေသည့် ခေတ်မီအပလီကေးရှင်းများစွာနှင့် မတူဘဲ၊ psql တွင် CTRL-C သည် ဆာဗာရှိ မေးမြန်းချက်ကို အမှန်တကယ် ပယ်ဖျက်မည်မဟုတ်ပေ။ ယင်းအစား၊ ၎င်းသည် ရလဒ်အတွက် ဖောက်သည်၏စောင့်ဆိုင်းခြင်းကို ပယ်ဖျက်ပြီး ဒေတာဘေ့စ်ဆာဗာတွင် ပျောက်ကွယ်သွားစေရန် စုံစမ်းမေးမြန်းမှုကို ချန်ထားခဲ့သည်။ ဤအပြုအမူသည် ချွတ်ယွင်းချက်မဟုတ်ပါ။ ၎င်းသည် ကျွန်ုပ်တို့၏ကိရိယာများ၏ အလွှာလိုက်၊ တစ်ခါတစ်ရံ ပျက်စီးလွယ်သော ဗိသုကာလက်ရာကို ထုတ်ဖော်ပြသသည့် ဒီဇိုင်းလက်ရာတစ်ခုဖြစ်သည်။ Mewayz ကဲ့သို့သော မော်ဂျူလာစနစ်များကို တည်ဆောက်သည့် စီးပွားရေးလုပ်ငန်းများအတွက်၊ ဤအခြေခံဖြစ်ရပ်မှန်များကို နားလည်သဘောပေါက်ခြင်းသည် ကြံ့ခိုင်ပြီး အသုံးပြုသူဗဟိုပြုသည့် လုပ်ငန်းလည်ပတ်မှုအလွှာများကို ဒီဇိုင်းထုတ်ရန် အဓိကသော့ချက်ဖြစ်သည်။

လုပ်ငန်းစဉ်နှစ်ခု၏ပုံပြင်- Client နှင့် Server

"hack-y" ခံစားချက်၏ အဓိကအချက်မှာ psql ၏ ဗိသုကာလက်ရာများမှ အရင်းခံပါသည်။ သင် psql တွင် query တစ်ခုကို လုပ်ဆောင်သောအခါ၊ လွတ်လပ်သော လုပ်ငန်းစဉ် နှစ်ခုသည် အလုပ်လုပ်သည်- သင့်စက်တွင်းရှိ psql client လုပ်ငန်းစဉ်နှင့် database host ရှိ postgres server လုပ်ငန်းစဉ်တို့ ဖြစ်သည်။ CTRL-C ကိုနှိပ်ခြင်းဖြင့် SIGINT (ကြားဖြတ်အချက်ပြမှု) သည် psql client လုပ်ငန်းစဉ် သို့ အတိအကျပေးပို့သည်။ ဖောက်သည်၏ချက်ချင်းအလုပ်မှာ စောင့်ဆိုင်းခြင်းကိုရပ်ပြီး ၎င်းလုပ်ဆောင်သည့်အချက်ပြမှုဆီသို့ ပြန်သွားရန်ဖြစ်သည်။ သို့သော်၊ ဆာဗာသည် ဤ client-side signal နှင့်ပတ်သက်သော မွေးရာပါအသိပညာမရှိပါ။ ၎င်း၏ရှုထောင့်မှကြည့်လျှင် မေးမြန်းချက်သည် မှန်ကန်ပြီး လုပ်ဆောင်နေသည့် လုပ်ဆောင်ချက်တစ်ခု ဖြစ်နေဆဲဖြစ်သည်။ ပယ်ဖျက်ရန် တောင်းဆိုချက်ကို သီးခြားညွှန်ကြားချက်အသစ်အဖြစ် အကြောင်းကြားရမည်။

"psql ရှိ CTRL-C သည် 'stop' ခလုတ်ထက်နည်းပြီး 'ကျွန်ုပ်၏ယခင်တောင်းဆိုမှုကို လျစ်လျူရှုပါ' ဟူသော အချက်သည် အလုပ်များသော စာကြည့်တိုက်မှူးထံသို့ တစ်ဝက်တစ်ပျက်ရောက်ရှိနေချိန်တွင် ၎င်းတို့ထံ ပေးအပ်ကြောင်း သတိပြုပါ။"

ပယ်ဖျက်ရေး ပရိုတိုကော- ဒုတိယတောင်းဆိုချက်

ဒါဆို မေးခွန်းက ဘယ်လို ဖျက်လိုက်တာလဲ။ SIGINT ကို ကိုင်တွယ်ပြီးနောက်၊ ကောင်းမွန်စွာ ပြုမူထားသော psql ဖောက်သည်သည် PostgreSQL ၏ တရားဝင် ပယ်ဖျက်ခြင်း ပရိုတိုကောကို စတင်သည်။ ၎င်းတွင် ဆာဗာသို့ အသစ်စက်စက် ချိတ်ဆက်မှုကို ဖွင့်လှစ်ပြီး သင်၏မေးမြန်းမှုလုပ်ဆောင်နေသည့် သီးသန့်နောက်ကွယ်မှ လုပ်ငန်းစဉ်ကို ဖော်ထုတ်ပေးသည့် လျှို့ဝှက်သော့တစ်ခုပါရှိသော အထူး "ပယ်ဖျက်ရန် တောင်းဆိုချက်" မက်ဆေ့ချ်ကို ပေးပို့ခြင်းတို့ ပါဝင်ပါသည်။ ဤတောင်းဆိုချက်ကို ဦးစားပေးနည်းဖြင့် လုပ်ဆောင်ပြီး ချက်ချင်းအောင်မြင်ရန် အာမခံချက်မရှိပါ။ ဤအဆင့်ပေါင်းများစွာ၊ မီးနှင့်မေ့သည့် လုပ်ငန်းစဉ်သည် အပြုအမူကို သွယ်ဝိုက်၍ဖြစ်စေ ခံစားရစေသည်။ ၎င်းသည် တိုက်ရိုက် အနှောင့်အယှက် မဟုတ်ပါ။ ၎င်းသည် နောက်ချန်နယ်မှ ပေးပို့သော ယဉ်ကျေးပြီး အပြိုင်အဆိုင် အသနားခံစာ ဖြစ်ပါသည်။

အသုံးပြုသူအတွေ့အကြုံကွာဟမှုနှင့် အနားသတ်ကိစ္စများ

ဤဒီဇိုင်းသည် သုံးစွဲသူများအတွက် မြင်သာထင်သာရှိသော ပွတ်တိုက်မှုများစွာကို ဖြစ်စေသည်-

  • တုံ့ပြန်မှုမရရှိခြင်း- သင်သည် CTRL-C ကိုနှိပ်ပြီး သင့်အမှာစာချက်ခြင်းပြန်ရနိုင်သော်လည်း ဆာဗာအလုပ်လုပ်နေဆဲဖြစ်သောကြောင့် စနစ်ဝန်သည် မြင့်မားနေပါသည်။
  • မသေချာသော ရလဒ်- ပယ်ဖျက်ရန် တောင်းဆိုချက်ကို ဆာဗာမှ လက်ခံရရှိခြင်း သို့မဟုတ် ဂုဏ်ပြုခံရပါက သင့်တွင် ချက်ချင်းအတည်ပြုချက် မရှိပါ။
  • Connection-Dependent Failure- ဆာဗာကို Firewall ပိတ်ထားပါက သို့မဟုတ် ပယ်ဖျက်ရန် တောင်းဆိုချက်အတွက် ချိတ်ဆက်မှုအသစ် မအောင်မြင်ပါက၊ မူရင်းမေးမြန်းသူသည် အချိန်အကန့်အသတ်မရှိ အသုံးပြုနိုင်မည်ဖြစ်သည်။
  • စိတ်ပိုင်းဆိုင်ရာ မတိုက်ဆိုင်မှု- universal "abort" ကွန်မန်းသည် ကွန်ပြူတာပတ်ဝန်းကျင်ရှိ အခြားနေရာများတွင် ဖန်တီးထားသော သုံးစွဲသူများ၏ မျှော်လင့်ချက်များကို ချိုးဖျက်၍ ထပ်တူကျသော ဖျက်ချခြင်းကို မလုပ်ဆောင်ပါ။

Mewayz ဖြင့် Aware Foundations ပေါ်တွင် တည်ဆောက်ခြင်း

ခေတ်မီစီးပွားရေးလုပ်ငန်းလည်ပတ်မှုစနစ်များသည် ၎င်းတို့၏ ကန့်သတ်ချက်များကို လေးစားလိုက်နာနေချိန်တွင် ယင်းအခြေခံရှုပ်ထွေးမှုများကို ဖယ်ထုတ်ရမည်ဖြစ်သည်။ Mewayz ကဲ့သို့ ပလပ်ဖောင်းတစ်ခုသည် စီမံခန့်ခွဲထားသော ဝန်ဆောင်မှု modules များအတွင်း ဒေတာဘေ့စ် အပြန်အလှန်တုံ့ပြန်မှုများကို မော်ဂျူလာလုပ်ငန်း OS အဖြစ် လုပ်ဆောင်သည်။ ဥပမာအားဖြင့်၊ Mewayz data query module တစ်ခုသည် SQL prompt ကို အကြမ်းဖျင်းဖော်ပြရုံမျှမက၊ ၎င်းသည် အသုံးပြုသူအတွက် အဆင်ပြေစေမည့် ထိန်းချုပ်မှုများ—စစ်မှန်သော၊ အတည်ပြုနိုင်သော "ရပ်တန့်ခြင်း" ခလုတ်၊ စုံစမ်းမှု အချိန်ကုန်သွားခြင်းနှင့် ဆာဗာပေါ်တွင် အမှန်တကယ် လုပ်ဆောင်နေသည့်အရာကို ပြသသည့် အချိန်နှင့်တစ်ပြေးညီ အခြေအနေ ဒိုင်ခွက်များဖြင့် ဖုံးအုပ်ထားမည်ဖြစ်သည်။ ၎င်းသည် ပရိုတိုကော အသွင်အပြင်များကို ကိုင်တွယ်ဖြေရှင်းခြင်းမှ အတွေ့အကြုံကို ရှင်းရှင်းလင်းလင်း လုပ်ဆောင်နိုင်သော လုပ်ငန်းလည်ပတ်မှုများကို စီမံခန့်ခွဲခြင်းဆီသို့ ရွေ့ပြောင်းပေးသည်။ psql ၏ CTRL-C မှ သင်ခန်းစာမှာ ကြီးမားသော ကိရိယာများသည် အစွမ်းထက်သော စွမ်းရည်များကို ပြသရုံသာ မဟုတ်ဘဲ၊ ၎င်းတို့အတွက် အလိုလိုသိပြီး ယုံကြည်စိတ်ချရသော အင်တာဖေ့စ်များကို ဒီဇိုင်းထုတ်ကာ ဗိသုကာအမွေအနှစ်များကို ချောမွေ့သော အလုပ်အသွားအလာများအဖြစ် ပြောင်းလဲပေးသည်။ ဟက်ခ်ကို နားလည်ခြင်းက ပိုကောင်းသောအရာတစ်ခုကို တည်ဆောက်ရန် အခွင့်အလမ်းကို ဖော်ပြသည်။

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

အမေးများသောမေးခွန်းများ

SIGINT ၏ တစ္ဆေသရဲ- Postgres CLI Query Cancellation ကို ဟက်ကာကဲ့သို့ ခံစားရသည်

ဆော့ဖ်ဝဲရေးသားသူများနှင့် ဒေတာဘေ့စ်စီမံခန့်ခွဲသူများအတွက်၊ PostgreSQL command-line interface (psql) သည် ယုံကြည်စိတ်ချရသော နေ့စဉ်ဒရိုက်ဗာတစ်ခုဖြစ်သည်။ ၎င်းသည် အားကောင်းသည်၊ တိကျသည်၊ နေရာအနှံ့ဖြစ်သည်။ သို့တိုင်၊ ၎င်း၏ အခြေခံအကျဆုံး အပြန်အလှန်တုံ့ပြန်မှုများထဲမှတစ်ခု— universal CTRL-C ဖြတ်လမ်းလင့်ခ်ဖြင့် ထွက်ပြေးသွားသောမေးမြန်းချက်ကို ပယ်ဖျက်ခြင်း—သည် ထူးဆန်းစွာနေရာမှထသွားသည်ဟု ခံစားရသည်။ command သည် လက်ရှိလုပ်ဆောင်မှုကို ရပ်တန့်စေသည့် ခေတ်မီအပလီကေးရှင်းများစွာနှင့် မတူဘဲ၊ psql တွင် CTRL-C သည် ဆာဗာရှိ မေးမြန်းချက်ကို အမှန်တကယ် ပယ်ဖျက်မည်မဟုတ်ပေ။ ယင်းအစား၊ ၎င်းသည် ရလဒ်အတွက် ဖောက်သည်၏စောင့်ဆိုင်းမှုကို ပယ်ဖျက်ပြီး ဒေတာဘေ့စ်ဆာဗာတွင် ပျောက်ကွယ်သွားစေရန် စုံစမ်းမေးမြန်းမှုကို ချန်ထားခဲ့သည်။ ဤအပြုအမူသည် ချွတ်ယွင်းချက်မဟုတ်ပါ။ ၎င်းသည် ကျွန်ုပ်တို့၏ကိရိယာများ၏ အလွှာလိုက်၊ တစ်ခါတစ်ရံ ပျက်စီးလွယ်သော ဗိသုကာလက်ရာကို ထုတ်ဖော်ပြသသည့် ဒီဇိုင်းလက်ရာတစ်ခုဖြစ်သည်။ Mewayz ကဲ့သို့သော မော်ဂျူလာစနစ်များကို တည်ဆောက်သည့် စီးပွားရေးလုပ်ငန်းများအတွက်၊ ဤအခြေခံဖြစ်ရပ်မှန်များကို နားလည်သဘောပေါက်ခြင်းသည် ကြံ့ခိုင်ပြီး အသုံးပြုသူဗဟိုပြုသည့် လုပ်ငန်းလည်ပတ်မှုအလွှာများကို ဒီဇိုင်းဆွဲရန် သော့ချက်ဖြစ်သည်။

လုပ်ငန်းစဉ်နှစ်ခု၏ပုံပြင်- Client နှင့် Server

"hack-y" ခံစားချက်၏ အဓိကအချက်မှာ psql ၏ ဗိသုကာလက်ရာများမှ အရင်းခံပါသည်။ သင် psql တွင် query တစ်ခုကို လုပ်ဆောင်သောအခါ၊ လွတ်လပ်သော လုပ်ငန်းစဉ် နှစ်ခုသည် အလုပ်လုပ်သည်- သင့်စက်တွင်းရှိ psql client လုပ်ငန်းစဉ်နှင့် database host ရှိ postgres server လုပ်ငန်းစဉ်တို့ ဖြစ်သည်။ CTRL-C ကိုနှိပ်ခြင်းဖြင့် SIGINT (interrupt signal) ကို psql client လုပ်ငန်းစဉ်သို့ အတိအကျပေးပို့သည်။ ဖောက်သည်၏ချက်ချင်းအလုပ်မှာ စောင့်ဆိုင်းခြင်းကိုရပ်ပြီး ၎င်းလုပ်ဆောင်သည့်အချက်ပြမှုဆီသို့ ပြန်သွားရန်ဖြစ်သည်။ သို့သော်၊ ဆာဗာသည် ဤ client-side signal နှင့်ပတ်သက်သော မွေးရာပါအသိပညာမရှိပါ။ ၎င်း၏ရှုထောင့်မှကြည့်လျှင် မေးမြန်းချက်သည် မှန်ကန်ပြီး လုပ်ဆောင်နေသည့် လုပ်ဆောင်ချက်တစ်ခု ဖြစ်နေဆဲဖြစ်သည်။ ပယ်ဖျက်ရန် တောင်းဆိုချက်ကို သီးခြားညွှန်ကြားချက်အသစ်အဖြစ် အကြောင်းကြားရမည်။

ပယ်ဖျက်ရေး ပရိုတိုကော- ဒုတိယတောင်းဆိုချက်

ဒါဆို မေးခွန်းက ဘယ်လို ဖျက်လိုက်တာလဲ။ SIGINT ကို ကိုင်တွယ်ပြီးနောက်၊ ကောင်းမွန်စွာ ပြုမူထားသော psql ဖောက်သည်သည် PostgreSQL ၏ တရားဝင် ပယ်ဖျက်ခြင်း ပရိုတိုကောကို စတင်သည်။ ၎င်းတွင် ဆာဗာသို့ အသစ်စက်စက် ချိတ်ဆက်မှုအသစ်တစ်ခုဖွင့်ပြီး သင်၏မေးမြန်းမှုလုပ်ဆောင်နေသည့် သီးသန့်နောက်ကွယ်မှ လုပ်ငန်းစဉ်ကို ဖော်ထုတ်ပေးသည့် လျှို့ဝှက်သော့တစ်ခုပါရှိသော အထူး "ပယ်ဖျက်ရန် တောင်းဆိုချက်" မက်ဆေ့ချ်ပေးပို့ခြင်းတို့ ပါဝင်ပါသည်။ ဤတောင်းဆိုချက်ကို ဦးစားပေးနည်းဖြင့် လုပ်ဆောင်ပြီး ချက်ချင်းအောင်မြင်ရန် အာမခံချက်မရှိပါ။ ဤအဆင့်ပေါင်းများစွာ၊ မီးနှင့်မေ့သည့် လုပ်ငန်းစဉ်သည် အပြုအမူကို သွယ်ဝိုက်၍ဖြစ်စေ ခံစားရစေသည်။ ၎င်းသည် တိုက်ရိုက် အနှောင့်အယှက် မဟုတ်ပါ။ ၎င်းသည် နောက်ချန်နယ်မှ ပေးပို့သော ယဉ်ကျေးပြီး အပြိုင်အဆိုင် အသနားခံစာ ဖြစ်ပါသည်။

အသုံးပြုသူအတွေ့အကြုံကွာဟမှုနှင့် အနားသတ်ကိစ္စများ

ဤဒီဇိုင်းသည် သုံးစွဲသူများအတွက် မြင်သာထင်သာရှိသော ပွတ်တိုက်မှုများစွာကို ဖြစ်စေသည်-

Mewayz ဖြင့် Aware Foundations ပေါ်တွင် တည်ဆောက်ခြင်း

ခေတ်မီစီးပွားရေးလုပ်ငန်းလည်ပတ်မှုစနစ်များသည် ၎င်းတို့၏ ကန့်သတ်ချက်များကို လေးစားလိုက်နာနေချိန်တွင် ယင်းအခြေခံရှုပ်ထွေးမှုများကို ဖယ်ထုတ်ရမည်ဖြစ်သည်။ Mewayz ကဲ့သို့ ပလပ်ဖောင်းတစ်ခုသည် စီမံခန့်ခွဲထားသော ဝန်ဆောင်မှု modules များအတွင်း ဒေတာဘေ့စ်အပြန်အလှန်ဆက်သွယ်မှုများကို မော်ဂျူလာလုပ်ငန်း OS အဖြစ် ဆောင်ရွက်သည်။ ဥပမာအားဖြင့်၊ Mewayz data query module တစ်ခုသည် SQL prompt ကို အကြမ်းဖျင်းဖော်ပြရုံမျှမက၊ ၎င်းသည် အသုံးပြုသူအတွက် အဆင်ပြေစေမည့် ထိန်းချုပ်မှုများ—စစ်မှန်သော၊ အတည်ပြုနိုင်သော "ရပ်တန့်ခြင်း" ခလုတ်၊ စုံစမ်းမှု အချိန်ကုန်သွားခြင်းနှင့် ဆာဗာပေါ်တွင် အမှန်တကယ် လုပ်ဆောင်နေသည့်အရာကို ပြသသည့် အချိန်နှင့်တစ်ပြေးညီ အခြေအနေ ဒိုင်ခွက်များဖြင့် ဖုံးအုပ်ထားမည်ဖြစ်သည်။ ၎င်းသည် ပရိုတိုကော အသွင်အပြင်များကို ကိုင်တွယ်ဖြေရှင်းခြင်းမှ အတွေ့အကြုံကို ရှင်းရှင်းလင်းလင်း လုပ်ဆောင်နိုင်သော လုပ်ငန်းလည်ပတ်မှုများကို စီမံခန့်ခွဲခြင်းဆီသို့ ရွေ့ပြောင်းပေးသည်။ psql ၏ CTRL-C မှ သင်ခန်းစာမှာ ကြီးမားသော ကိရိယာများသည် အစွမ်းထက်သော စွမ်းရည်များကို ပြသရုံသာ မဟုတ်ဘဲ၊ ၎င်းတို့အတွက် အလိုလိုသိပြီး ယုံကြည်စိတ်ချရသော အင်တာဖေ့စ်များကို ဒီဇိုင်းထုတ်ကာ ဗိသုကာအမွေအနှစ်များကို ချောမွေ့သော အလုပ်အသွားအလာများအဖြစ် ပြောင်းလဲပေးသည်။ ဟက်ခ်ကို နားလည်ခြင်းက ပိုကောင်းသောအရာတစ်ခုကို တည်ဆောက်ရန် အခွင့်အလမ်းကို ဖော်ပြသည်။

သင့်လုပ်ငန်းသုံးကိရိယာများအားလုံးကို တစ်နေရာတည်းတွင်

အက်ပ်များစွာကို ဆော့ကစားခြင်းကို ရပ်ပါ။ Mewayz သည် တစ်လလျှင် $49 ဖြင့် ကိရိယာ 208 ခုကို ပေါင်းစပ်ထားသည် — စာရင်းဇယားမှ HR အထိ၊ ခွဲခြမ်းစိတ်ဖြာမှုအထိ ကြိုတင်စာရင်းသွင်းထားသည်။ စတင်ရန် ခရက်ဒစ်ကတ် မလိုအပ်ပါ။

Mewayz အခမဲ့စမ်းသုံးကြည့်ပါ →