This happend to me right noww as I tried to write a gui task manager for the GNU/Linux OS

  • sebsch
    link
    fedilink
    arrow-up
    22
    arrow-down
    1
    ·
    2 months ago

    Try it out on your own system.

    :(){
     :|:&
    };:
    

    It’s totally possible

      • bi_tux@lemmy.worldOP
        link
        fedilink
        arrow-up
        16
        arrow-down
        1
        ·
        2 months ago

        it didn’t crash the kernel, it just killed every process that isn’t run by the root user, which kind of feels like a crash

        • CameronDev@programming.dev
          link
          fedilink
          arrow-up
          4
          ·
          2 months ago

          Ah, that definitely would feel like a crash. Sent kill signal to cgroup accidentally? Or just iterate over all processes and signal them all?

          • bi_tux@lemmy.worldOP
            link
            fedilink
            arrow-up
            6
            ·
            edit-2
            2 months ago

            probably the later, but idk how, all I did was insert a string in the following command like this:

            ``Command::new(“bash”)

            .arg(“-c”) .arg(format!(“ps -aux | grep -i "}" awk '{{print $2}’ | xagrs kill -9”, input)

            .output()

            .expect(“error”);``

            I’ve tested the command and it worked flawlessly in the terminal, but I have no idea what I’m doing, since I’m new to rust and never worked with this library

            • CameronDev@programming.dev
              link
              fedilink
              arrow-up
              6
              ·
              2 months ago

              There are rust libraries to send signals, might be better to use those rather than calling bash. eg. https://docs.rs/nix/latest/nix/sys/signal/index.html

              I’m guessing if input was “”, then it would sigkill all processes? Less confident, but some functions behave slightly differently in an interactive console vs a non interactive, maybe ps has a different format when used non interactively?

              Aside, you want three backticks and a newline to get code formatting :)
              
              • bi_tux@lemmy.worldOP
                link
                fedilink
                arrow-up
                5
                ·
                edit-2
                2 months ago

                thx, btw I figured it out:

                I forgot to trimm the string, so it had a line break in it which lead to grep showing the processes from the term I put in + all processes that contain a space/linebreak and appearently all processes shown by ps aux contain some kind of space (makes sense, since there are spaces between the user, pid, etc) so yeah, I ended up trying to kill every process on the system, but it only killed the user processes, since I ran everything without sudo

      • ulterno@lemmy.kde.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        There’s this game “HyperRougue”. Run it on Arch.

        hyperrogue-git version 13.0d.r60.g27fb2d92-1

        Go to settings -> 3D configuration -> projection -> projection type -> . Cycle through the projection types. One of them causes something good enough to call a crash.

        I don’t remember anymore if it was just a display driver crash or a kernel crash and I haven’t updated to a newer version (which might have fixed it).

          • ulterno@lemmy.kde.social
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 months ago

            Doesn’t even startup on my box,

            It needs to startup and then go to that point (after you select the projection) to cause the crash.
            It definitely caused something other than the application to get into an invalid state. Which is why I am apprehensive about trying it out again to answer your comment. Probably was the display driver, which is why it didn’t just turn off after that.