Apakah ada cara untuk menambahkan aplikasi / skrip ke startup Linux sehingga setiap kali sistem boot itu akan dieksekusi?
Saya mencari beberapa cara otomatis, yaitu pengguna tidak boleh menambahkan ini dengan pekerjaan cron atau sesuatu seperti itu.
Apakah ada cara untuk menambahkan aplikasi / skrip ke startup Linux sehingga setiap kali sistem boot itu akan dieksekusi?
Saya mencari beberapa cara otomatis, yaitu pengguna tidak boleh menambahkan ini dengan pekerjaan cron atau sesuatu seperti itu.
Jawaban:
Terlepas dari skrip startup tingkat sistem, lingkungan desktop Anda mungkin memiliki caranya sendiri untuk menjalankan program. Folder .config/autostartini seharusnya menjadi cara netral untuk mendefinisikan entri autorun di desktop. /etc/xdg/autostartadalah untuk konfigurasi seluruh sistem. Rincian tentang spesifikasi di http://developer.gnome.org/autostart-spec/ .
Untuk entri autostart LXDE juga dapat diatur ~/.config/lxsession/LXDE/autostart.
Ini sedikit berbeda jika Anda perlu menjalankan skrip Anda setelah jaringan aktif dan berjalan. Dalam hal ini Anda harus memeriksa skrip post-connect khusus yang dapat ditentukan untuk manajer jaringan Anda. Kedua NetworkManager dan Wicd memiliki cara mereka sendiri menentukan entri autorun pasca-connect. Jika jaringan dikonfigurasi melalui ifupdown, maka skrip post-up dapat ditempatkan di /etc/network/if-up.d/folder. Tetapi pendekatan yang lebih baik untuk menjalankan skrip post-connect mungkin systemd (untuk sistem yang mendukungnya, yang merupakan mayoritas dari distro modern).
Jika hal yang ingin Anda autostart bukan aplikasi grafis yang memerlukan desktop maka yang terbaik adalah menghindari menggunakan fasilitas autostart yang disediakan oleh xorg atau oleh lingkungan desktop Anda saat ini.
systemd telah menjadi mana-mana di banyak distro modern, dan ia menawarkan banyak kontrol dan fleksibilitas dalam hal bagaimana layanan Anda dimulai dan bagaimana mereka dijalankan.
Saya akan merangkum beberapa manfaat ( systemd dapat melakukan lebih banyak ):
User=myuserRestart=on-failure|on-watchdog|on-abnormal|alwaysType=simple|forking|oneshot|notify|dbusWants=network-online.targetdi [Unit]bagian).Contoh layanan yang memulai daemon telegram-cli. Tempatkan dalam /etc/systemd/system/tg.service.
[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli
User=jicu
[Install]
WantedBy=multi-user.target
Sekarang Anda dapat mengaktifkan layanan untuk memulai kembali secara otomatis:
sudo systemctl enable tg
Mulai layanan:
sudo systemctl start tg
Hentikan layanan:
sudo systemctl stop tg
Periksa status:
systemctl status tg
Nonaktifkan layanan:
sudo systemctl disable tg
Untuk menghemat Anda mengetik tambahan, Anda dapat menambahkan di ~/.bashrcbaris alias sc='sudo systemctl $*'Anda maka Anda akan dapat mempersingkat perintah di atas untuk misalnya sc start tg.
CATATAN: Jika Anda telah menggunakan
cronmaka sadar bahwa entri crontab dijalankan dalam lingkungan terbatas - hal yang sama berlaku untuksystemd: selalu menggunakan jalur absolut, dan tidak membuat asumsi variabel apa pun yang didefinisikan. Secara eksplisit mengatur variabel apa pun yang bergantung pada skrip Anda.systemdtidak akan menggunakan pengguna Anda.bashrcdan$PATH.
Info lebih lanjut:
Ya, adalah mungkin untuk menjalankan program saat startup di Linux dengan mendefinisikan path ke executable rc.localyang berada di direktori /etcatau /etc/rc.d, misalnya:
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/path/to/executable
Catatan: jangan lupa untuk memberikan hak yang dapat dieksekusi seperti yang dijelaskan dalam dokumentasi file, yaitu Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
Startup applications menggunakan tombol homeAdd Startup command box masukkan perintahOK (Anda akan melihat perintah baru Anda dalam daftar)Close Tes dengan memulai kembali atau keluar dan kembali.
Sumber: https://help.ubuntu.com/community/AddingProgramToSessionStartup
Setiap distribusi menggunakan masing-masing teknik bootstrap sendiri, jadi perlu melihat dokumen untuk distro Anda. /etc/rc.local adalah tempat di mana Anda dapat meletakkan beberapa skrip otomatis, tetapi ini benar-benar ketinggalan zaman. Sekarang sebagian besar sistem berbasis linux menggunakan runlevels atau systemd bootstraping, sehingga sebagian besar pekerjaan autostarted dapat dikontrol dengan baik.
Saya menemukan jawaban saya di sini: /programming/7221757/run-automatically-program-on-startup-under-linux-ubuntu saya dapat membuat file / skrip untuk mematikan trackpad saya saat saya di sesi Linux Ubuntu 12.10 saya.